본문 바로가기

분류 전체보기

(253)
파이썬) 더하기 사이클 - BOJ n = int(input()) init = n n = str(n) if len(n) == 1: n = '0' + n i = 1 p = n n = int(n[0]) + int(n[1]) n = str(n) if len(n) == 1: n = p[-1] + n else: n = p[-1] + n[-1] while True: if int(init) == int(n): break # while True: i += 1 # if init == int(n): # break prev = n n = int(n[0]) + int(n[1]) n = str(n) if len(n) == 1: n = prev[-1] + n else: n = prev[-1] + n[-1] # print(n) print(i) https://www...
파이썬) 컨베이어 벨트 위의 로봇 - BOJ https://www.acmicpc.net/problem/20055 20055번: 컨베이어 벨트 위의 로봇 길이가 N인 컨베이어 벨트가 있고, 길이가 2N인 벨트가 이 컨베이어 벨트를 위아래로 감싸며 돌고 있다. 벨트는 길이 1 간격으로 2N개의 칸으로 나뉘어져 있으며, 각 칸에는 아래 그림과 같이 1부 www.acmicpc.net from collections import deque n, k = map(int, input().split()) belt = deque(list(map(int, input().split()))) robot = deque([0] * n) step = 0 while 1: belt.rotate(1) robot.rotate(1) # 회전 robot[-1] = 0 # 로봇 아웃 if ..
파이썬) 줄 세우기 - BOJ https://www.acmicpc.net/problem/2631 2631번: 줄세우기 KOI 어린이집에는 N명의 아이들이 있다. 오늘은 소풍을 가는 날이다. 선생님은 1번부터 N번까지 번호가 적혀있는 번호표를 아이들의 가슴에 붙여주었다. 선생님은 아이들을 효과적으로 보호하기 www.acmicpc.net 이 문제는 보아도 모르겠어서 해당 블로그를 통해 이해를 하게되었다 https://ddiyeon.tistory.com/61 [백준 2631번] 줄세우기 (python) 문제 KOI 어린이집에는 N명의 아이들이 있다. 오늘은 소풍을 가는 날이다. 선생님은 1번부터 N번까지 번호가 적혀있는 번호표를 아이들의 가슴에 붙여주었다. 선생님은 아이들을 효과적으로 보호 ddiyeon.tistory.com 내가 제출한 ..
파이썬) 1, 2, 3 더하기 4 https://www.acmicpc.net/problem/15989 15989번: 1, 2, 3 더하기 4 정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 4가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다. 합을 이루고 있는 수의 순서만 다른 것은 같은 것으로 친다. 1+1+1+1 2+1+1 (1+1+2, 1+2+1) 2+2 www.acmicpc.net n = int(input()) arr = [0, 1, 2, 3, 4, 5, 7, 8, 10, 12, 14, 16] for i in range(12, 100001): # arr.append() # a = arr[i] arr.append(arr[i-6] + i) for i in range(n): num = int(input()) print..
파이썬) 쉬운 최단거리 - BOJ https://www.acmicpc.net/problem/14940 import sys input = sys.stdin.readline from collections import deque N, M = map(int, input().split()) graph = [list(map(int, input().split())) for _ in range(N)] visited = [[-1] * M for _ in range(N)] dx, dy = [0,0,-1,1], [-1,1,0,0] def bfs(i,j): queue = deque() queue.append((i,j)) visited[i][j] = 0 while queue: x, y = queue.popleft() for i in range(4): nx, n..
파이썬) 한 줄로 서기 - BOJ https://www.acmicpc.net/problem/1138 n = int(input()) arr = list(map(int, input().split())) answer = [0 for _ in range(n)] for i in range(n): cnt = 0 for j in range(n): if answer[j] == 0 and cnt == arr[i]: answer[j] = i + 1 break elif answer[j] == 0: cnt += 1 print(' '.join(map(str, answer))) 우선 이것이 어떻게 동작하는지 살펴보자. 말로 설정하자면 다음과 같다. 예를들어 2 1 1 0일때, 0번째 2는 자기보다 큰 사람이 왼쪽에 2명 있다는 뜻이다. 즉 왼쪽에서 두 칸 뛰고 ..
파이썬) N번째 큰 수 - BOJ https://www.acmicpc.net/problem/2075 2075번: N번째 큰 수 첫째 줄에 N(1 ≤ N ≤ 1,500)이 주어진다. 다음 N개의 줄에는 각 줄마다 N개의 수가 주어진다. 표에 적힌 수는 -10억보다 크거나 같고, 10억보다 작거나 같은 정수이다. www.acmicpc.net import heapq n = int(input()) heap = [] # arr = [] for _ in range(n): a = list(map(int, input().split())) for num in a: # 배열 개수가 n개 미만이면 if len(heap) < n: # 넣음 heapq.heappush(heap, num) else: # 입력값이 heap의 최소값보다 크다면 if heap[0] <..
파이썬) 창고 다각형 - BOJ https://www.acmicpc.net/problem/2304 2304번: 창고 다각형 첫 줄에는 기둥의 개수를 나타내는 정수 N이 주어진다. N은 1 이상 1,000 이하이다. 그 다음 N 개의 줄에는 각 줄에 각 기둥의 왼쪽 면의 위치를 나타내는 정수 L과 높이를 나타내는 정수 H가 한 개의 www.acmicpc.net n = int(input()) arr = [0 for _ in range(1001)] mh = 0 height_idx = 0 for _ in range(n): idx, h = map(int, input().split()) arr[idx] = h if mh < h: height_idx = idx mh = h prev_h = 0 left_value = 0 for i in range(h..