본문 바로가기

코테

(85)
[프로그래머스] <단어 변환> 파이썬 programmers.co.kr/learn/courses/30/lessons/43163 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 programmers.co.kr BFS 이용 from collections import deque def solution(begin, target, words): if target not in words : return 0 answer = 0 check = [0] * (len(words)+1) visited = [False] * (len(words)+1) words..
[프로그래머스] <네트워크> 파이썬 programmers.co.kr/learn/courses/30/lessons/43162 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있 programmers.co.kr def solution(n, computers): answer = 0 def dfs(x,y) : if x = n or y = n : return False if computers[x][y] == 1 : computers[x][y] = 0 dfs(x+1,y) dfs(x-1,y) dfs(x,y+1) dfs(x,y-1) return True..
[프로그래머스] <타겟 넘버> 파이썬 programmers.co.kr/learn/courses/30/lessons/43165 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+ programmers.co.kr DFS로 풀었음 answer = 0 def dfs(index, res, numbers, target) : global answer if index == len(numbers) : if res == target : answer += 1 return dfs(index+1, res + numbers[index], numbers,..
[프로그래머스] <섬 연결하기> 파이썬 programmers.co.kr/learn/courses/30/lessons/42861 코딩테스트 연습 - 섬 연결하기 4 [[0,1,1],[0,2,2],[1,2,5],[1,3,1],[2,3,8]] 4 programmers.co.kr 읽자마자 그냥 MST인거 알았음 MST 구현 알고리즘에는 프림 알고리즘, 크루스칼 알고리즘이 있음 크루스칼 하다가 중간에 막혀서 프림으로 구현함 파이썬으로 코테 준비한지 얼마안됐는데, 자료형 집합쓰면 편하겠다고 바로 생각해낸게 뭐랄까 기뻤음 def solution(n, costs): costs.sort(key = lambda x : x[2]) total = 0 village= set([costs[0][0]]) while len(village) != n : for i, cos..
[프로그래머스] <구명보트> 파이썬 programmers.co.kr/learn/courses/30/lessons/42885 코딩테스트 연습 - 구명보트 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 5 programmers.co.kr def solution(people, limit): answer = 0 people.sort() left, right = 0, len(people)-1 while left
[프로그래머스] <큰 수 만들기> 파이썬 풀이 programmers.co.kr/learn/courses/30/lessons/42883?language=python3 코딩테스트 연습 - 큰 수 만들기 programmers.co.kr "1924"에서 k가 2라면 -> 봐야하는 것 res = 2 "1924" res-1개를 제외한 나머지 중 큰 수를 찾기 (num에는 그 이후 string을 넣고, res는 1을 줄임) "24" 큰 수 다음 인덱스부터 끝까지 res-1개를 제외한 나머지 중 큰 수 찾기 "1231234"에서 k가 3이라면 -> 봐야하는 것 res = 4 "1231234" res-1개를 제외한 나머지 중 큰 수 3 -> 3 이후를 num에 저장, res-=1 "1234" res-1개를 제외한 나머지 중 큰 수 2 -> 2 이후를 num에 저장,..
그리디 동전 예시 n = 1260 count = 0 array = [500, 100, 50, 10] for coin in array : count += n // coin n %= coin print(count) 화폐 종류가 k일 때, 시간복잡도 O(k) = 금액과 무관 1이 될 때까지 n = 25 k = 5 count = 0 while n != 1 : if n % k != 0 : n -= 1 count += 1 else : n = n // k count += 1 print(count) 내 풀이 n,k = map(int, input().split()) result = 0 while True : target = (n//k) * k result += (n - target) n = target if n < k: bre..
파이썬 기본문법 #리스트 컴프리헨션 a = [i for i in range(10)] print(a) b = [i for i in range(20) if i%2==1] print(b) c = [i*i for i in range(10)] print(c) # nXm 2차원 리스트 초기화 n = 4 m = 3 array = [[0]*m for _ in range(n)] print(array) # 변수 상관 없이 반복할 때, _ 사용 # append : 가장 뒤에 삽입 # sort : 오름차순, (reverse = True 내림차순) # reverse : 리스트 뒤집기 # insert(위치, 값) # count(특정 값) # remove(특정 값) : 여러 개면 하나만 제거 a = [1,2,3,4,5,6] remove_set =..