프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr주어진 정수들을 이어 붙였을 때 만들 수 있는 가장 큰 수를 문자열로 반환하는 문제입니다.핵심은 숫자 자체의 크기가 아니라, 두 숫자를 어떤 순서로 붙였을 때 더 큰 문자열이 되는지를 기준으로 정렬하는 것입니다.1. 나의 풀이from functools import cmp_to_keydef compare(a, b): if a + b > b + a: return -1 elif a + b 이 풀이에서는 먼저 숫자를 문자열로 변환했습니다.숫자를 이어 붙여 비교해야 하므로, 정수 덧셈이 아니라 문자열 결합이 필요하기 때문입니다.정렬 기준은 compare..
프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문자열 배열을 특정 인덱스의 문자를 기준으로 정렬하는 문제입니다. 핵심은 1차 정렬 기준은 n번째 문자, 2차 정렬 기준은 문자열 전체의 사전순으로 두는 것입니다.1. 나의 풀이def solution(strings, n): strings.sort(key=lambda x: (x[n], x)) return stringskey에 튜플을 사용하여 정렬 기준을 두 개로 지정했습니다.첫 번째 기준은 x[n]으로, 각 문자열의 n번째 문자입니다. 두 번째 기준은 x로, n번째 문자가 같은 경우 문자열 전체를 사전순으로 비교하도록 했습니다.2. 오늘 배운 점 및 복기..
프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krH-Index는 h번 이상 인용된 논문이 h편 이상이 되는 h의 최댓값을 찾는 문제입니다. 핵심은 인용 횟수를 정렬한 뒤, 가능한 h 값을 논문의 개수 기준으로 줄여가며 검사하는 것입니다.1. 나의 풀이 def solution(citations): citations = sorted(citations, reverse=True) h_index = len(citations) while h_index > 0: if citations[h_index - 1] >= h_index: break h_index -= 1 ..
프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr서로 다른 인덱스의 두 수를 뽑아 만들 수 있는 모든 합을 구한 뒤, 중복을 제거하고 오름차순으로 정렬하는 문제입니다. 핵심은 combinations, set, sorted를 순서대로 연결하는 것입니다.1. 나의 풀이from itertools import combinationsdef get_pair_sums(numbers): return set(map(sum, combinations(numbers, 2)))def solution(numbers): pair_sums = get_pair_sums(numbers) return sorted(pair_sums..
코딩테스트 연습 - [3차] 파일명 정렬알고리즘 문제 연습 카카오톡 친구해요! 프로그래머스 교육 카카오 채널을 만들었어요. 여기를 눌러, 친구 추가를 해주세요. 신규 교육 과정 소식은 물론 다양한 이벤트 소식을 가장 먼저 알려school.programmers.co.kr파일명 리스트를 HEAD, NUMBER, TAIL 세 부분으로 분리하고, 대소문자를 구분하지 않는 문자열 정렬과 숫자 크기 정렬을 조합하여 수행하는 문제입니다. 정규표현식의 그룹 캡처 기능을 활용하면 복잡한 분기문 없이도 데이터를 정밀하게 분리할 수 있습니다.1. 나의 풀이정규표현식을 미리 컴파일하여 성능을 최적화하고, re.match를 통해 문자열의 시작부터 패턴을 분석하여 데이터를 추출했습니다.import redef solution(f..