문제풀이 245

[파이썬] [이진탐색] Pro 징검다리

문제 https://programmers.co.kr/learn/courses/30/lessons/43236?language=python3 코딩테스트 연습 - 징검다리 출발지점부터 distance만큼 떨어진 곳에 도착지점이 있습니다. 그리고 그사이에는 바위들이 놓여있습니다. 바위 중 몇 개를 제거하려고 합니다. 예를 들어, 도착지점이 25만큼 떨어져 있고, 바위가 programmers.co.kr 코드 def solution(distance, rocks, n): start,end=0,distance answer=0 rocks.sort() while start

[파이썬] [DFS] Pro 여행경로

문제 https://programmers.co.kr/learn/courses/30/lessons/43164?language=python3 코딩테스트 연습 - 여행경로 [["ICN", "SFO"], ["ICN", "ATL"], ["SFO", "ATL"], ["ATL", "ICN"], ["ATL","SFO"]] ["ICN", "ATL", "ICN", "SFO", "ATL", "SFO"] programmers.co.kr 코드 from collections import defaultdict def solution(tickets): answer = [] routes=defaultdict(list) for ticket in tickets: routes[ticket[0]].append(ticket[1]) for ke..

[파이썬] [BFS] Pro 단어 변환

문제 https://programmers.co.kr/learn/courses/30/lessons/43163?language=python3 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 programmers.co.kr 코드 from collections import deque def solution(begin, target, words): queue=deque() temp=[] for i in words: temp.append([n for n in i]) begin=[n for n in begin]..

[파이썬] [DP] Pro 도둑질

문제 https://programmers.co.kr/learn/courses/30/lessons/42897?language=python3 코딩테스트 연습 - 도둑질 도둑이 어느 마을을 털 계획을 하고 있습니다. 이 마을의 모든 집들은 아래 그림과 같이 동그랗게 배치되어 있습니다. 각 집들은 서로 인접한 집들과 방범장치가 연결되어 있기 때문에 인접한 programmers.co.kr 코드 def solution(money): dp=[0]*(len(money)) dp[0]=money[0] dp[1]=max(money[1],money[0]) for i in range(2,len(money)-1): dp[i]=max(dp[i-1],dp[i-2]+money[i]) dp1 = [0] * (len(money)) dp1..

문제풀이/DP 2022.02.17

[파이썬] [DP] Pro 등굣길

문제 https://programmers.co.kr/learn/courses/30/lessons/42898?language=python3 코딩테스트 연습 - 등굣길 계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m = programmers.co.kr 코드 import sys def solution(col, row, puddles): INF=sys.maxsize answer = 0 array=[[0]*(col+1) for _ in range(row+1)] for i,j in puddles: array[j][i]=INF for i in range(row + 1): ..

문제풀이/DP 2022.02.17

[파이썬] [그리디] Pro 구명보트

문제 https://programmers.co.kr/learn/courses/30/lessons/42885?language=python3 코딩테스트 연습 - 구명보트 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 5 programmers.co.kr 코드 def solution(people, limit): people.sort() i=0 j=len(people)-1 count=0 while i

* [파이썬] [그리디] Pro 큰 수 만들기

문제 https://programmers.co.kr/learn/courses/30/lessons/42883?language=python3 코딩테스트 연습 - 큰 수 만들기 programmers.co.kr 코드 def solution(number, k): answer = [] for num in number: # answer에 뭐라도 존재하고, k가 0보다 크며, answer의 맨 위 값이 현재의 num보다 작으면 while answer and k > 0 and answer[-1] < num: # answer의 맨 위 값을 제거하고 k도 -1 해준다 answer.pop() k -= 1 # 현재의 num값은 무조건적으로 answer에 넣어준다 answer.append(num) # answer는 number의..