배경 코드from collections import defaultdictdef solution(keymap, targets): answer = [] MAX_INT = 101 dic = defaultdict(lambda: MAX_INT) for kk in keymap: for i in range(len(kk)): dic[kk[i]] = min(dic[kk[i]], i + 1) for target in targets: cnt = 0 for t in target: if t in dic: cnt += dic[t] else: cnt = ..
전체 글
읽기 쉬운 코드를 짜기 위해 노력합니다. 좋은 코드는 단순하고 이해하기 쉬워야 한다고 생각합니다.def solution(diffs, times, limit): def calculate(level): time = 0 prev_time = 0 n = len(diffs) for i in range(n): if diffs[i] 정답 코드를 보게 되면 이진 탐색을 사용하였다 그 이유는 문제를 분석하면 숙련도의 최솟값을 찾는 문제이기 때문이다정렬 된 범위 내에서 효율적으로 값을 찾기 위해서는 이진 탐색을 생각해보자
문제https://www.acmicpc.net/problem/6198 코드n = int(input())stack = []answer = 0for _ in range(n): h = int(input()) while stack and stack[-1] 설명볼 수 있는 위치를 stack에 담아서 처리하는 코드 이다.코드는 간단하지만 생각의 틀을 깨야 풀 수 있는 문제였다
안녕하세요 회고 입니다.제가 다른 분들처럼 이쁘게 꾸미거나 좋은 글 솜씨가 없지만 그래도 써보겠습니다. 일단 1,2,3 주차를 진행했는데 Python 개발자로써 Java는 참 어렵게 다가왔습니다.간결한 Python 코드들을 보다 Java의 static final 등 다양한 자료구조에 옛날에 배웠던 지식을 꺼내거나 새로 배우고 어려웠습니다. 그래도 꾸준히 따라가며 java는 python과 다른 정적인 부분에서 안정성이 높다고 느꼈습니다.그리고 단순히 코테를 치듯이 구현했었는데 다른분들의 코드를 리뷰하며 폴더를 분리하고 파일을 분리해서 구현하는 것을 보고 저렇게 세세하게 다들 분리하구나 라고 놀라기도 했습니다. 우테코 매 주 차의 미션을 제출하고 피드백을 해주는데 각각의 피드백들이 참 어렵지만 도움이 되었습..
요구사항사내 고용 메세지 큐를 Kafka로 사용해야 한다현재 RabbitMQ 기반으로 작동 중지연이체 서비스는 유지되어야 한다(은행 점검 시간 종료 후, 자동으로 송금해주기다양한 은행, 다양한 점검 시간핵심 기능 설계지연이체 등록 API 개발지연이체 실행 구현스케줄러를 통해 DB의 데이터를 읽어와 송금 API에 전송데이터가 많아지면 5분 안에 모든 데이터의 송금을 완료 할 수 없음문제 해결 방법1. 스케줄러 늘리기=> 겹치지 않게 Read 해야하는 이슈가 발생, 복잡한 분기가 만들어짐=> 여러개의 스케줄러가 한번에 송금 요청 시 송금 요청 API server 부담 2. 메세지 큐 두기(Kafka) 이슈 사항토픽에 같은 송금 건이 쌓일 수 있다. (delay 상태가 만들어 짐)상태 체킹 로직 추가 컨슈머 ..
1. 플랫폼docker 이미지를 build시 기본적으로 Host 시스템 아키텍처에 맞는 플랫폼으로 빌드ex) mac북의 arm64platform 옵션으로 아키텍처를 설정해 build시 원하는 아키텍처를 가진 이미지를 빌드 가능docker build --platform linux/amd64 멀티 플랫폼 빌드(buildx 설치)docker buildx create --name container-builder -- driver docker-container --use -- bootstrap 여러 플랫폼에서 실행할 수 있는 단일 이미지를 만들 수 있음(,로 구분하여 진행)docker buildx build --platform linux/amd64,linux/arm64 --push ... pull시 Host 아키..
https://www.acmicpc.net/problem/1294 코드import sysfrom heapq import heappush, heappopinput = sys.stdin.readlinedef solution(): N = int(input()) heap = [] M = 0 for i in range(N): word = input().rstrip() heappush(heap, word+'_') M += len(word) res = '' for _ in range(M): word = heappop(heap) res += word[0] heappush(heap, word[1:]) pri..
compare to key의 약자로 커스터마이징 된 비교 함수를 정렬에 사용할 수 있게 해주는 도구입니다. Python에서는 기본적으로 sorted() 함수와 list.sort() 메서드에 key 인자를 사용하여 정렬 기준을 지정할 수 있는데, cmp_to_key를 사용하면 이 정렬 기준을 비교 함수 기반으로 정의할 수 있습니다. from functools import cmp_to_key 사용법from functools import cmp_to_key# 문자열 길이를 비교하는 함수def compare_len(s1, s2): return len(s1) - len(s2)# 비교 함수를 key로 변환key_func = cmp_to_key(compare_len)# 문자열 리스트 정렬words = ["app..