본문 바로가기

분류 전체보기

(255)
프로그래머스)이진 변환 반복하기 https://school.programmers.co.kr/learn/courses/30/lessons/70129 def solution(s): answer = [0,0] while True: if s == '1' or s == 1: break count = s.count('0') s = s.replace('0','') answer[1] += count answer[0] += 1 s = str(bin(len(s)))[2:] return answer 단계는 2단계짜리 문제이지만 구현문제치곤 매우 쉬워서 1.5단계 정도로 생각한다.
백준)1,2,3 더하기 https://www.acmicpc.net/problem/9095 9095번: 1, 2, 3 더하기 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. www.acmicpc.net a = int(input()) for i in range(a): b = int(input()) if b == 1: print(1) elif b == 2: print(2) elif b == 3: print(4) else: arr = [0 for _ in range(b)] arr[0] = 1 arr[1] = 2 arr[2] = 4 for j in range(3,len(arr)): arr[j] = arr[j-1] + arr[j-2] + arr[j-3] print(arr[b-1])
백준)부녀회장이 될테야 https://www.acmicpc.net/problem/2775 2775번: 부녀회장이 될테야 첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다 www.acmicpc.net a = int(input()) for _ in range(a): n_arr = [i for i in range(1,15)] floor = int(input()) ho = int(input()) for i in range(floor): for j in range(14): zz = sum(n_arr[:j+1]) n_arr.append(zz) n_arr = n_arr[14:] print(n_arr[ho-1]) 문제를 보는 순간 어떻게 풀어야 ..
*백준)공유기 설치 https://www.acmicpc.net/problem/2110 2110번: 공유기 설치 첫째 줄에 집의 개수 N (2 ≤ N ≤ 200,000)과 공유기의 개수 C (2 ≤ C ≤ N)이 하나 이상의 빈 칸을 사이에 두고 주어진다. 둘째 줄부터 N개의 줄에는 집의 좌표를 나타내는 xi (0 ≤ xi ≤ 1,000,000,000)가 www.acmicpc.net n, c = map(int, input().split()) array = [] for i in range(n): array.append(int(input())) array.sort() def binary_search(array, start, end): while start = current + mid: count += 1 current = arr..
백준)랜선 자르기 https://www.acmicpc.net/problem/1654 a,b = map(int,input().split()) arr = [] for i in range(a): z = int(input()) arr.append(z) start,end = 1,max(arr) while start= mid: sums = sums + (i // mid) if b > sums: end = mid - 1 else: start = mid + 1 print(end) 이분법을 조금 넓게 수행해야하는 문제이다.
백준) 나이트의 이동 https://www.acmicpc.net/problem/7562 7562번: 나이트의 이동 체스판 위에 한 나이트가 놓여져 있다. 나이트가 한 번에 이동할 수 있는 칸은 아래 그림에 나와있다. 나이트가 이동하려고 하는 칸이 주어진다. 나이트는 몇 번 움직이면 이 칸으로 이동할 수 www.acmicpc.net from collections import deque a = int(input()) dx = [-2,-2,-1,1,2,2,1,-1] dy = [-1,1,2,2,1,-1,-2,-2] answer = [] for _ in range(a): row = int(input()) now = list(map(int,input().split())) forward = list(map(int,input().split..
백준) 나이트의 이동 https://www.acmicpc.net/problem/7562 7562번: 나이트의 이동 체스판 위에 한 나이트가 놓여져 있다. 나이트가 한 번에 이동할 수 있는 칸은 아래 그림에 나와있다. 나이트가 이동하려고 하는 칸이 주어진다. 나이트는 몇 번 움직이면 이 칸으로 이동할 수 www.acmicpc.net from collections import deque a = int(input()) dx = [-2,-2,-1,1,2,2,1,-1] dy = [-1,1,2,2,1,-1,-2,-2] answer = [] for _ in range(a): row = int(input()) now = list(map(int,input().split())) forward = list(map(int,input().split..
백준) 숫자판 점프 https://www.acmicpc.net/problem/2210 2210번: 숫자판 점프 111111, 111112, 111121, 111211, 111212, 112111, 112121, 121111, 121112, 121211, 121212, 211111, 211121, 212111, 212121 이 가능한 경우들이다. www.acmicpc.net arr = [] numbers= [] for i in range(5): a = list(map(str,input().split())) arr.append(a) dx = [0,0,1,-1] dy = [-1,1,0,0] def dfs(x,y,string): if len(string) == 6: if string not in numbers: numbers.ap..