목록PS (95)
DevYoon
link 🔗 https://programmers.co.kr/learn/courses/30/lessons/42898 코딩테스트 연습 - 등굣길 계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m = programmers.co.kr def solution(m, n, puddles): board = [[0]*(m+1) for _ in range(n+1)] puddles = [[j, i] for [i, j] in puddles] board[1][1] = 1 for y in range(1, n+1): for x in range(1, m+1): if y == 1 and x ..
link 🔗 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): ret = [[0]*len(triangle[i]) for i in range(len(triangle))] ret[0][0] = triangle[0][0] for y in range(len(ret)-1): for x in range(len(triangle[y])): ret[y+1][x] = max(ret[y+1][x], triangle[y+1][x]+ret[y][x]) ret[y+1]..
link 🔗 https://programmers.co.kr/learn/courses/30/lessons/42895 코딩테스트 연습 - N으로 표현 programmers.co.kr def solution(N, number): if N == number: return 1 dp = [set() for _ in range(9)] for i in range(1, 9): dp[i].add(int(str(N)*i)) for j in range(1, i): for y in dp[j]: for x in dp[i-j]: dp[i].add(y+x) dp[i].add(y-x) dp[i].add(y*x) if x != 0: dp[i].add(y//x) if number in dp[i]: return i dp.append(dp[..
link 🔗 https://programmers.co.kr/learn/courses/30/lessons/42584 코딩테스트 연습 - 주식가격 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,00 programmers.co.kr def solution(prices): answer = [0]*len(prices) idx = 0 while idx prices[i]: answer[idx] += 1 ..
link 🔗 https://programmers.co.kr/learn/courses/30/lessons/42587 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr def solution(priorities, location): answer = 0 while len(priorities) != 0: flag = 1 for idx in range(1, len(priorities)): if priorities[idx] > priorities[0]: flag = 0 temp = priorities.pop(0) priori..
link 🔗 https://programmers.co.kr/learn/courses/30/lessons/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr import math def solution(progresses, speeds): answer = [] length = len(progresses) left = [0]*length for idx in range(length): left[idx] = math.ceil((100-progresses[idx])/speeds[idx]) idx = 1 ..
link 🔗 https://programmers.co.kr/learn/courses/30/lessons/42583 코딩테스트 연습 - 다리를 지나는 트럭 트럭 여러 대가 강을 가로지르는 일차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 다리에는 트럭이 최대 bridge_length대 올라갈 programmers.co.kr 시간초과가 났던 코드 def solution(bridge_length, weight, truck_weights): answer = 1 bridge = [0]*bridge_length bridge[0] = truck_weights.pop(0) while sum(bridge)!=0: for idx in range(bridge_..
link 🔗 https://programmers.co.kr/learn/courses/30/lessons/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 1️⃣ left 배열에 남은 진도율(100-progress)과 개발속도를 나눈 값을 math.ceil로 올림해서 담아준다. 2️⃣ while문을 통해 1번 인덱스부터 0번 인덱스보다 작으면 pop한 후 temp에 1씩 더해주고, 만약 0번 인덱스가 더 작다면 temp에 1을 더한 값(0번 인덱스까지 포함)을 answer에 삽입해주고, 0번 인..

link 🔗 https://programmers.co.kr/learn/courses/30/lessons/42842 코딩테스트 연습 - 카펫 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 programmers.co.kr 1️⃣ yellow의 약수를 구해 divisor에 담아 주었다. (yellow의 너비와 높이) 2️⃣ 약수 리스트에서 하나씩 뽑아 너비*2+높이*2+4가 brown과 같으면(아래 이미지 참고) answer로 너비와 높이에 각각 2씩 더해 넣어주었다. def solution(brown, yellow): answer = [] divisor = [] ..
link 🔗 https://programmers.co.kr/learn/courses/30/lessons/42839 코딩테스트 연습 - 소수 찾기 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 programmers.co.kr 1️⃣ DFS를 사용해서 풀이했다. 2️⃣ 숫자의 자릿수가 numbers의 자릿수보다 크면 안 되므로, 레벨이 numbers의 자릿수보다 더 커지면 리턴해주었다. 3️⃣ num이 최초의 상태('')가 아니고, DFS의 변수로 check 배열을 두어 check 안에 없는 수만 검사해주었다. 4️⃣ 시간 초과로 답이 안 나와서 소수 검사하..