배경 코드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] 정답 코드를 보게 되면 이진 탐색을 사용하였다 그 이유는 문제를 분석하면 숙련도의 최솟값을 찾는 문제이기 때문이다정렬 된 범위 내에서 효율적으로 값을 찾기 위해서는 이진 탐색을 생각해보자
문제 코드 from itertools import permutations def is_prime(num): if num < 2: return False for i in range(2, int(num**0.5) + 1): if num % i == 0: return False return True def solution(numbers): answer = set() # 가능한 모든 숫자를 생성하여 집합에 추가 for i in range(1, len(numbers) + 1): perms = permutations(numbers, i) for perm in perms: num = int(''.join(perm)) if is_prime(num): answer.add(num) return len(answer) per..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/42840 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 def solution(answers): pattern1 = [1, 2, 3, 4, 5] pattern2 = [2, 1, 2, 3, 2, 4, 2, 5] pattern3 = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5] scores = [0, 0, 0] for i, answer in enumerate(answers): if answer == pattern1[i % len(pat..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/86491 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 def solution(sizes): max_width = 0 max_height = 0 for card in sizes: width, height = sorted(card) max_width = max(max_width, width) max_height = max(max_height, height) return max_width * max_height sorted를 통해서 width와..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/42747 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 def solution(citations): citations.sort(reverse=True) h_index= 0 for i, citationin in enumerate(citations): h_index = max(h_index, min(i+1, citationin)) return h_index 다른 사람 코드 def solution(citations): citations.sort(..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/42746 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 def solution(numbers): numbers = sorted(map(str, numbers), key=lambda x: x*3, reverse=True) return str(int(''.join(numbers))) # 숫자를 문자열로 변환하고 정렬 기준을 설정하여 정렬 # 0인 경우 체크해서 제외 다른 사람 코드 import functools def comparator(a,b..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/42628 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 import heapq def solution(operations): max_heap = [] min_heap = [] for op in operations: command, value = op.split() value = int(value) if command == "I": heapq.heappush(min_heap, value) heapq.heappush(max_heap, -valu..