목록level3 (20)
동캄의 코딩도장
https://programmers.co.kr/learn/courses/30/lessons/67258 코딩테스트 연습 - 보석 쇼핑 ["DIA", "RUBY", "RUBY", "DIA", "DIA", "EMERALD", "SAPPHIRE", "DIA"] [3, 7] programmers.co.kr # 프로그래머스 보석 쇼핑 def find_m_gem(jew): min_=1000000 for gem in jew: if min_>jew[gem]: min_=jew[gem] m_gem=gem return m_gem def solution(gems): answer = [-1,-1] jew = {} kinds = len(set(gems)) for i in range(len(gems)): jew[gems[i]] = ..
https://programmers.co.kr/learn/courses/30/lessons/17678 코딩테스트 연습 - [1차] 셔틀버스 10 60 45 ["23:59","23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59"] "18:00" programmers.co.kr # 프로그래머스 [1차] 셔틀버스 from collections import deque def solution(n, t, m, timetable): answer = '' bus_time = [] bus_cnt = [[] for _ in range(n)]..
https://programmers.co.kr/learn/courses/30/lessons/42895 코딩테스트 연습 - N으로 표현 programmers.co.kr # 프로그래머스 N으로 표현 실패 def solution(N, number): answer = 0 dp = [10000]*(1000000) for i in range(1, 7): s = str(N)*i dp[int(s)] = i for i in range(2, 100000): if i > N: dp[i] = min(dp[i], dp[i*N]+1, dp[i+N] + 1, dp[i-N]+1,) else: dp[i] = min(dp[i], dp[i*N]+1, dp[i+N]+1) answer = dp[number] if answer >= 8: an..
# 프로그래머스 하노이의 탑 def hanoi(start, mid, end, pillar): if start: if start[1:]: return hanoi(start[1:], mid, end, [pillar[0], pillar[2], pillar[1]])+[[pillar[0], pillar[2]]]+hanoi(start[1:], mid, end, [pillar[1], pillar[0], pillar[2]]) else: return [[pillar[0], pillar[2]]] def solution(n): answer = [] start = [i for i in range(n, 0, -1)] mid = [] end = [] answer = hanoi(start, mid, end, [1, 2, 3]) r..
https://programmers.co.kr/learn/courses/30/lessons/12936 코딩테스트 연습 - 줄 서는 방법 n명의 사람이 일렬로 줄을 서고 있습니다. n명의 사람들에게는 각각 1번부터 n번까지 번호가 매겨져 있습니다. n명이 사람을 줄을 서는 방법은 여러가지 방법이 있습니다. 예를 들어서 3명의 사람 programmers.co.kr # 프로그래머스 줄 서는 방법 import math def solution(n, k): answer = [] k -= 1 lst = [i for i in range(1, n+1)] while n > 1: p = math.perm(n-1) answer.append(lst.pop(int(k//p))) k = k % p n -= 1 for val in ..
https://programmers.co.kr/learn/courses/30/lessons/12938 코딩테스트 연습 - 최고의 집합 자연수 n 개로 이루어진 중복 집합(multi set, 편의상 이후에는 "집합"으로 통칭) 중에 다음 두 조건을 만족하는 집합을 최고의 집합이라고 합니다. 각 원소의 합이 S가 되는 수의 집합 위 조건을 만 programmers.co.kr # 프로그래머스 최고의 집합 def solution(n, s): answer = [] if n > s: answer.append(-1) else: stan = s//n left = s % n for i in range(n-left): answer.append(stan) for i in range(left): answer.append(1+..