코딩테스트
-
프로그래머스 정수 삼각형코딩테스트 2021. 11. 30. 17:52
https://programmers.co.kr/learn/courses/30/lessons/43105 코딩테스트 연습 - 정수 삼각형 [[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] 30 programmers.co.kr def solution(triangle): for x in range(1, len(triangle)): for y in range(len(triangle[x])): if y == 0: triangle[x][y] = triangle[x-1][y] + triangle[x][y] elif y == len(triangle[x])-1: triangle[x][y] = triangle[x-1][y-1] + triangle[x][y] else: tri..
-
프로그래머스 구명보트코딩테스트 2021. 11. 24. 17:15
https://programmers.co.kr/learn/courses/30/lessons/42885?language=python3 코딩테스트 연습 - 구명보트 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 5 programmers.co.kr 첫 시도는 효율성 테스트에서 실패 def solution(people, limit): answer = 0 people.sort(reverse=True) while people: tmp = people.pop() for x in people: if tmp + x
-
프로그래머스 카펫코딩테스트 2021. 11. 18. 13:52
https://programmers.co.kr/learn/courses/30/lessons/42842 코딩테스트 연습 - 카펫 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 programmers.co.kr def solution(brown, yellow): answer = [] for w in range(1, yellow + 1): print(w) if yellow % w != 0: continue h = yellow / w if brown == (w+2) * (h+2) - yellow: if (w+2) >= (h+2): answer.append(w+2) an..
-
프로그래머스 모의고사코딩테스트 2021. 11. 15. 17:19
https://programmers.co.kr/learn/courses/30/lessons/42840 코딩테스트 연습 - 모의고사 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 programmers.co.kr def solution(answers): p1 = [1, 2, 3, 4, 5] p2 = [2, 1, 2, 3, 2, 4, 2, 5] p3 = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5] a = [[1,0], [2,0], [3, 0]] for x in range(len(answers)): if p1[x % len(p1)] == answers[x]: a[..
-
프로그래머스 가장 큰 수코딩테스트 2021. 11. 12. 16:48
https://programmers.co.kr/learn/courses/30/lessons/42746 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 programmers.co.kr def solution(numbers): answer = '' tmp = [(str(x)) for x in numbers] tmp.sort(key=lambda x: x * 3, reverse=True) for x in tmp: answer += x return str(int(answer)) 1. 정..
-
프로그래머스 K번째수코딩테스트 2021. 11. 11. 19:34
https://programmers.co.kr/learn/courses/30/lessons/42748 코딩테스트 연습 - K번째수 [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] programmers.co.kr def solution(array, commands): answer = [] for x in commands: tmp = array[x[0]-1:x[1]] tmp.sort() answer.append(tmp[x[2]-1]) return answer
-
프로그래머스 이중우선순위큐코딩테스트 2021. 11. 11. 17:19
https://programmers.co.kr/learn/courses/30/lessons/42628 코딩테스트 연습 - 이중우선순위큐 programmers.co.kr import heapq def solution(operations): heap = [] for x in operations: tmp = x.split() if tmp[0] == "I": heapq.heappush(heap, int(tmp[1])) elif tmp[0] == "D" and len(heap) > 0: if tmp[1] == "1": del heap[-1] else: heapq.heappop(heap) if len(heap) == 0: return [0,0] return [max(heap), heap[0]] 주의 1. 힙은 가장..
-
프로그래머스 더 맵게코딩테스트 2021. 11. 9. 18:40
https://programmers.co.kr/learn/courses/30/lessons/42626# 코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같 programmers.co.kr import heapq def solution(scoville, K): answer = 0 heapq.heapify(scoville) while len(scoville) > 1 and scoville[0] < K: tmp = heapq.heappop(scoville) tmp2 = heapq.heappop(scoville) tmp3 = tmp + (..