99클럽 코테 스터디 16일차 TIL
·
devlog/TIL
뜨문뜨문한 TIL...이대로 괜찮은가? 🤔 오늘의 문제백준 25757 – 임스와 친구들LeetCode - Number of 1 Bits백준 25757 – 임스와 친구들문제요약게임 종류(Y/F/O)에 따라 참여 인원 수가 다름 (2/3/4)중복된 닉네임 제거 후, 최대 몇 게임 가능한지 계산풀이 전략입력값을 받은 후, set으로 중복된 닉네임 제거게임에 따라 추가로 필요한 인원수를 dict로 저장 중복이 제거된 플레이어 이름에서 선택된 게임에서 필요한 인원수를 나눈값만큼 게임 플레이 가능 코드import sysprmpt = sys.stdin.readline().split()names = [sys.stdin.readline().strip() for _ in range(int(prmpt[0]))]games ..
99클럽 코테 스터디 11일차 TIL
·
devlog/TIL
오늘의 문제706. Design HashMap문제 요약직접 해시맵 구현하기 (내장 hashmap 라이브러리 사용X)key 범위: 0 최대 10^4번의 호출풀이 전략튜플 사용고정 크기 버킷 배열 사용: self.map = [...]충돌 해결 방식 → 각 버킷에 (key, value) 튜플을 리스트로 저장class MyHashMap: def __init__(self): self.size = 10000 # 10^4 operation 대비? self.map = [[] for _ in range(self.size)] def put(self, key: int, value: int) -> None: index = hash(key) % self.size f..
99클럽 코테 스터디 10일차 TIL
·
devlog/TIL
오늘의 문제LeetCode 347: Top K Frequent ElementsLeetCOde 2283: Check if Number Has Equal Digit Count and Digit Value문제 요약Top K Frequent Elements nums 배열에서 가장 많이 등장한 k개의 숫자 return (배열로) 시간복잡도 O(nlogn) 풀이 전략시간복잡도 O(nlogn) 이라, brute-force는 불가능Counter 함수와 Heap을 사용해서 풀이Counter 함수: 주어진 배열에서의 빈도수를 dictionary 형태로 생성 -> 시간복잡도 O(n)Heap: 빈도 높은 k개를 추출하기 위해 사용 -> 시간복잡도 O(nlogn) 코드from collections import Counterim..
99클럽 코테 스터디 9일차 TIL
·
devlog/TIL
문제BOJ 3986 - 좋은 단어🔍 문제 요약문자열에서 같은 알파벳끼리 짝을 지어야 함선이 교차하지 않도록, 즉 스택 구조처럼 처리해야 함모든 문자가 정확히 한 번만 짝지어지면 → "좋은 단어"📌 풀이 전략:문자를 하나씩 순회하며:스택이 비었거나 top이 다르면 → append()top과 현재 문자가 같으면 → pop()단어 순회 후 스택이 비어 있으면 → 좋은 단어로 카운트python에는 peek()이 없으므로, 배열 마지막 요소를 확인하는 것으로 대체👩‍💻 코드import sysn = int(sys.stdin.readline())count = 0for _ in range(n): word = sys.stdin.readline().strip() stack = [] for c in ..
Transactional + DDD
·
devlog/TIL
2019년 12월 16일에 notion에 작성한 글을 옮겨 왔다.@Transactional + DDDfun requestRefund(request: RefundRequest): RefundResponse { val paymentInfo = 결제클라이언트.get결제정보(request.orderNo) return refund(refundDomainService.register(request, paymentInfo))}보통 외부의 호출이 일어날떄 transaction을 분리하는 경우는 다음과 같다.transaction이 이미 열렸고, 외부 호출을 하는 경우 timeout 같은 에러 발생 시, 지연된 시간만큼 transaction을 물고 있기 때문에 좋지 않다. → db lock 발생 가능 (그런데 ..
[Gradle] gradle 빌드 OOM 발생할땐?
·
devlog/TIL
CI/CD 단계중 빌드단계에서 OOM이 발생하는 경우가 얼마나 될까? 일단 지금까지 여러 어플리케이션의 빌드를 돌려봤지만 처음 경험해 봤다. 🤔 젠킨스 빌드 로그에는 아래와 같이 OutofMemoryError가 발생했다는 로그가 남아있다. 그리고 힙덤프 업로드 알림이 왔다. 힙덤프를 분석해보기 위해 MAT실행 > 분석! 이런 처음 보는 에러가 memory leak의 가장 의심되는 부분이라고 분석되었다. 원인을 위해 해당 검색을 해보았지만 딱히 도움되는 글을 발견하지는 못했다. (가장 관련있어 보이는 stackoverflow의 글 일단 링크) 빌드 oom이니까 gradle의 문제아닐까..? 일단 힙덤프를 봐도 모르겠으니, 다음 타겟인 gradle을 의심해봤다. 관련해서 자료를 찾아보니, gradle dae..
[Python] scp, paramiko 패키지 예제
·
devlog/TIL
파일 업로드에 사용할 python 패키지를 찾다가 scp, paramiko를 사용하여 아래와 같이 개발함! from paramiko import SSHClient from scp import SCPClient def upload_files(target, fileList): scp = connect_to_server() files = [] for file in fileList: filename = file.rstrip() file_full_path = "졀대/상대경로"+ filename scp.put(files=filename, remote_path=file_full_path, recursive=True) # fileList to # scp.put(files=files, remote_path=target_..
[vim] 좀 더 편-안하게 vim editor를 사용하는 설정
·
devlog/TIL
포매팅: shift, tab 4!!!!!!! 8이면 막 마음이 무너져 버려 set smartindent set tabstop=4 set expandtab set shiftwidth=4 지금당장 라인끝으로 커서를 이동하고 싶다 $ (shift + 4) 지금당장 파일의 제일 아래로 가고싶다 shift + g 지금당장 파일의 헤드로 가고싶다 shift + h