목록분류 전체보기 (157)
DevYoon
link 🔗 https://programmers.co.kr/learn/courses/30/lessons/42897 코딩테스트 연습 - 도둑질 도둑이 어느 마을을 털 계획을 하고 있습니다. 이 마을의 모든 집들은 아래 그림과 같이 동그랗게 배치되어 있습니다. 각 집들은 서로 인접한 집들과 방범장치가 연결되어 있기 때문에 인접한 programmers.co.kr def solution(money): dp1 = [0]*len(money) # 첫번째 집 털기 dp1[0] = money[0] dp1[1] = money[0] for idx in range(2, len(money)-1): dp1[idx] = max(dp1[idx-1], dp1[idx-2]+money[idx]) # 마지막 집 털기 dp2 = [0]*le..
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_..
연산자 1️⃣ 산술연산자 이항 연산자 +, -, *, /, % 단항 연산자 ++, -- a++; ➡️ 앞의 식을 처리한 다음 1을 증가시켜라 ++a; ➡️ 1을 증가시킨 다음에 식을 처리해라 대입 연산자 =, +=, -=, *=, /=, %= 예시 1) 3/4 = 0 2) a = 10; b = a++; → b = a → a += 1 ∴ a = 11, b = 10 c = ++a; → a += 1 → c = a ∴ a = 12, c = 12 3) a = 10; a += 10; ∴ a = 20; 예시 #include void main(){ int a, b; a = 4*(1/2); b = a++; printf("%d", b) } ∴ 1 (a = 4*0) 예시 y = 3+2*(x=7/2) ∴ x = 6, y = ..
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번 인..