반응형

Development/Algorithm 33

[이코테 2021] 3장 그리디 [실전문제] 1이 될 때까지

나의 풀이 n, k = map(int, input().split()) cnt = 0 while n != 1: if n % k == 0: n //= k cnt += 1 else: n -= 1 cnt += 1 print(cnt) 답안 예시 # N, K을 공백을 기준으로 구분하여 입력 받기 n, k = map(int, input().split()) result = 0 // N이 K 이상이라면 K로 계속 나누기 while n >= k: # N이 K로 나누어 떨어지지 않는다면 N에서 1씩 빼기 while n % k != 0: n -= 1 result += 1 # K로 나누기 n //= k result += 1 # 마지막으로 남은 수에 대하여 1씩 빼기 while n > 1: n -= 1 result += 1 pr..

[이코테 2021] 3장 그리디 [실전문제] 숫자 카드 게임

나의풀이 n, m = map(int, input().split()) arr = [] min_arr = [] for _ in range(n): tmp = list(map(int, input().split())) min_arr.append(min(tmp)) arr.append(tmp) print(max(min_arr)) 답안 예시 # N, M을 공백을 기준으로 구분하여 입력 받기 n, m = map(int, input().split()) result = 0 # 한 줄씩 입력 받아 확인하기 for i in range(n): data = list(map(int, input().split())) # 현재 줄에서 '가장 작은 수' 찾기 min_value = min(data) # '가장 작은 수'들 중에서 가장 큰 ..

[이코테 2021] 3장 그리디 [실전문제] 큰 수의 법칙

나의 풀이 n, m, k = map(int, input().split()) arr = list(map(int, input().split())) arr.sort(reverse=True) num = m // (k+1) result = (arr[0]*k + arr[1])*num + arr[0]*(m%(k+1)) print(result) 답안 예시 # N, M, K를 공백을 기준으로 구분하여 입력 받기 n, m, k = map(int, input().split()) # N개의 수를 공백을 기준으로 구분하여 입력 받기 data = list(map(int, input().split())) data.sort() # 입력 받은 수들 정렬하기 first = data[n - 1] # 가장 큰 수 second = data[..

[이코테 2021] 3장 그리디 [예제 3-1] 거스름돈

나의 풀이 n = int(input()) coins = [500, 100, 50, 10] count = 0 for c in coins: if n//c > 0: count += n//c n = n%c print(count) # / : 나누기 # // : 몫 # % : 나머지 답안 예시 n = 1260 count = 0 # 큰 단위의 화폐부터 차례대로 확인하기 coin_types = [500, 100, 50, 10] for coin in coin_types: count += n // coin # 해당 화폐로 거슬러 줄 수 있는 동전의 개수 세기 n %= coin print(count)

[이코테 2021] 코딩테스트 with python

https://youtube.com/playlist?list=PLRx0vPvlEmdAghTr5mXQxGpHjWqSz0dgC (이코테 2021) 이것이 취업을 위한 코딩 테스트다 with 파이썬 www.youtube.com Contents. 1. 코딩 테스트 출제 경향 분석 및 파이썬 문법 부수기 2. 그리디 & 구현 3. DFS & BFS 4. 정렬 알고리즘 5. 이진 탐색 6. 다이나믹 프로그래밍 7. 최단 경로 알고리즘 8. 기타 그래프 이론 9. 코딩 테스트에서 자주 출제되는 기타 알고리즘 10. 개발형 코딩 테스트 자료구조: 우선순위 큐(Priority Queue)와 힙(Heap) 10분 핵심 요약 코딩 테스트를 위한 트리(Tree) 자료구조 10분 핵심 요약 코딩 테스트를 위한 벨만 포드 알고리..

[백준] 1202번: 보석 도둑 (python)

https://www.acmicpc.net/problem/1202 1202번: 보석 도둑 첫째 줄에 N과 K가 주어진다. (1 ≤ N, K ≤ 300,000) 다음 N개 줄에는 각 보석의 정보 Mi와 Vi가 주어진다. (0 ≤ Mi, Vi ≤ 1,000,000) 다음 K개 줄에는 가방에 담을 수 있는 최대 무게 Ci가 주어진다. (1 ≤ Ci www.acmicpc.net import sys import heapq N, K = map(int, sys.stdin.readline().split()) MV = [list(map(int, sys.stdin.readline().split())) for _ in range(N)] bags = [int(sys.stdin.readline()) for _ in range(..

[백준] 1655번: 가운데를 말해요 (python)

https://www.acmicpc.net/problem/1655 1655번: 가운데를 말해요 첫째 줄에는 수빈이가 외치는 정수의 개수 N이 주어진다. N은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수이다. 그 다음 N줄에 걸쳐서 수빈이가 외치는 정수가 차례대로 주어진다. 정수는 -1 www.acmicpc.net import sys import heapq N = int(sys.stdin.readline()) nums = [int(sys.stdin.readline()) for _ in range(N)] max_heap, min_heap = [], [] for n in nums: if len(min_heap) == len(max_heap): heapq.heappush(max_heap, (-n,..

[백준] 13251번: 조약돌 꺼내기 (python)

https://www.acmicpc.net/problem/13251 13251번: 조약돌 꺼내기 첫째 줄에 뽑은 조약돌이 모두 같은 색일 확률을 출력한다. 정답과의 절대/상대 오차는 10-9까지 허용한다. www.acmicpc.net import sys import math M = int(sys.stdin.readline()) stone = list(map(int,sys.stdin.readline().split())) K = int(sys.stdin.readline()) N = sum(stone) total = math.comb(N, K) same_color = 0 for s in stone: same_color += math.comb(s, K) print(same_color/total)

[백준] 1062번: 가르침 (python)

www.acmicpc.net/problem/1062 1062번: 가르침 첫째 줄에 단어의 개수 N과 K가 주어진다. N은 50보다 작거나 같은 자연수이고, K는 26보다 작거나 같은 자연수 또는 0이다. 둘째 줄부터 N개의 줄에 남극 언어의 단어가 주어진다. 단어는 영어 소문 www.acmicpc.net import sys from itertools import combinations def set2bit(string_set): bit = 0 for s in string_set: bit |= 2**(ord('z')-ord(s)) return bit def make_candidate(word): candidate = set() for w in word: candidate |= w return candida..

반응형