목록Coding Test (56)
this-is-kim

1로 만들기 정수 n이 주어질 때, 다음과 같은 연산을 할 수 있다. 1. n이 5로 나누어 떨어지면, 5로 나눈다. - ⓐ 2. n이 3으로 나누어 떨어지면, 3으로 나눈다. - ⓑ 3. n이 2로 나누어 떨어지면, 2로 나눈다. - ⓒ 4. n에서 1을 뺀다. - ⓓ 정수 n이 주어졌을 때, 1을 만드려고 한다. 연산을 사용하는 횟수의 최솟값을 구하여라. (입력 조건) 1. 첫째줄에는 정수 N이 주어진다. (1 ≤ N ≤ 30,000) (입력 예) 26 1) 26 - 1 = 25 - ⓓ 2) 25 / 5 = 5 - ⓐ 3) 5 / 5 = 1 - ⓐ (출력 예) 3 n = int(input()) dp = [0] * (n+1) for i in range(2, n+1): dp[i] = 1 + dp[i-1]..

네트워크 def solution(n, computers): def dfs(v): if not visited[v]: visited[v] = True for i in range(n): if computers[v][i] == 1 and visited[i] == False: dfs(i) return True return False ##### visited = [False] * n answer = 0 for i in range(n): if dfs(i): answer += 1 return answer

떡볶이 떡 만들기 더보기 def binary_search(array, target): mid = len(array) // 2 - 1 cutter = array[mid] while True: result = 0 for i in array: if i > cutter: result += (i - cutter) if result == target: return cutter elif result > target: cutter += 1 else: cutter -= 1 m = int(input()) array = list(map(int, input().split())) array.sort(reverse=True) print(binary_search(array, m)) def binary_search(array, ta..

부품 찾기 부품 가게에 N개의 부품이 있다. 손님이 M개의 부품을 사려한다. 이때 가게에 부품이 모두 있는지 확인하여라. 부품이 존재하면 'yes'를 출력하고, 존재하지 않으면 'no'를 출력해라. (입력 조건) 1. 첫째줄에는 가게에 있는 부품의 번호가 주어진다. (1 ≤ N ≤ 1,000,000) 2. 둘째줄에는 손님이 사려하는 부품의 번호가 주어진다. (1 ≤ M ≤ 100,000) (입력 예) 8 3 7 9 2 5 7 3 (출력 예) no yes yes 더보기 def binary_search(stocks, orders): start = 0 result = [] for order in orders: end = len(stocks) - 1 stock = False while start

두 배열의 원소 교체 N개의 원소로 이뤄진 두 배열 A, B가 있다. 최대 K번의 바꿔치기 연산을 할 수 있다. 바꿔치기 연산을 수행하여 만들수 있는 배열 A의 원소 합의 최댓값을 구하여라. (입력 조건) 1. 첫째줄에는 N, K가 주어진다. (1 ≤ K ≤ N ≤ 100,000) 2. 둘째줄부터 각각 배열 A, B의 원소들이 주어진다. 모든 원소는 10,000,000보다 작은 자연수이다. (입력 예) 5 3 1 2 5 4 3 5 5 6 6 5 (출력 예) 26 n, k = map(int, input().split()) a = list(map(int, input().split())) b = list(map(int, input().split())) a.sort() b.sort(reverse=True) fo..

성적이 낮은 순서로 학생 출력하기 N명의 학생이 있다. 각 학생의 이름과 성적이 주어졌을 때, 성적이 낮은 순서대로 이름을 출력하라. (입력 조건) 1. 첫째줄에는 학생 수 N이 입력된다. (1 ≤ N ≤ 100,000) 2. 두번째줄부터 학생의 이름과 성적이 공백으로 구분되어 입력된다. 이름의 길이와 성적은 100 이하의 자연수이다. (입력 예) 2 홍길동 95 이순신 77 (출력 예) 이순신 홍길동 n = int(input()) students = [] for _ in range(n): students.append(list(input().split())) students.sort(key=lambda student: student[1]) for student in students: print(stude..