알고리즘 123

[baekjoon] 백준 11659번 : 구간 합 구하기 4 (by python 파이썬) 구간합

https://www.acmicpc.net/problem/11659 11659번: 구간 합 구하기 4 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j www.acmicpc.net 정답 code #구간 합 구하기 import sys input = sys.stdin.readline n, m = map(int,input().split()) num = list(map(int,input().split())) sum_list = [0] total = 0 for i in range(len(num)): total += num[i] sum_list.append(to..

[baekjoon] 백준 11403번 : 경로 찾기 (by python) 플로이드-워셜

https://www.acmicpc.net/problem/11403 11403번: 경로 찾기 가중치 없는 방향 그래프 G가 주어졌을 때, 모든 정점 (i, j)에 대해서, i에서 j로 가는 경로가 있는지 없는지 구하는 프로그램을 작성하시오. www.acmicpc.net 정답 code #경로 찾기 n = int(input()) graph = [] for i in range(n): graph.append(list(map(int,input().split()))) for k in range(n): for i in range(n): for j in range(n): if (graph[i][k] == 1 and graph[k][j] == 1): graph[i][j] = 1 for i in graph: for j i..

[baekjoon] 백준 11286번 : 절대값 힙 (by python 파이썬) heapq(튜플)

https://www.acmicpc.net/problem/11286 11286번: 절댓값 힙 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 정답 code #절대값 힙 import sys import heapq input = sys.stdin.readline heap = [] n = int(input()) for i in range(n): x = int(input()) if x == 0: if not heap: print(0) else: print(heapq.heappop(heap)[1]) else: heapq.h..

[baekjoon] 백준 11047번 : 동전 0 (by python) 그리디

https://www.acmicpc.net/problem/11047 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net 정답 code #동전 0 import sys input = sys.stdin.readline n, k = map(int,input().split()) coin = [] for i in range(n): coin.append(int(input())) coin.sort(reverse=True) cnt = 0 for c in coin: i..

[baekjoon] 백준 10026번 : 적록색약 (by python) bfs dfs

https://www.acmicpc.net/problem/10026 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net 정답 code -bfs활용 #적록색약 from collections import deque import sys input = sys.stdin.readline dx = [-1,1,0,0] dy = [0,0,-1,1] def bfs(x,y): q.append([x,y]) visit[x][y] = cnt while q: x, y = q.popleft() for i in range(4): nx ..

[baekjoon] 백준 9461번 : 파도반 수열 (by python)

https://www.acmicpc.net/problem/9461 9461번: 파도반 수열 오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. 나선에서 가장 긴 변의 www.acmicpc.net 정답 code #파도반 수열 import sys input = sys.stdin.readline pado = [0 for _ in range(101)] for i in range(1,101): if i == 1: pado[i] = 1 elif i == 2: pado[i] = 1 elif i == 3: pado[i] = 1 elif i == 4: pado[i] = 2 elif i == 5: pado[i]..

[baekjoon] 백준 9375번 : 패션왕 신혜빈 (by python) 딕셔너리

https://www.acmicpc.net/problem/9375 9375번: 패션왕 신해빈 첫 번째 테스트 케이스는 headgear에 해당하는 의상이 hat, turban이며 eyewear에 해당하는 의상이 sunglasses이므로 (hat), (turban), (sunglasses), (hat,sunglasses), (turban,sunglasses)로 총 5가지 이다. www.acmicpc.net 정답 code #패션왕 신해빈 import sys input = sys.stdin.readline t = int(input()) for _ in range(t): n = int(input()) clo = {} for _ in range(n): wear = list(input().split()) if wea..

[baekjoon] 백준 9019번 : DSLR (by python) bfs *pypy3

https://www.acmicpc.net/problem/9019 9019번: DSLR 네 개의 명령어 D, S, L, R 을 이용하는 간단한 계산기가 있다. 이 계산기에는 레지스터가 하나 있는데, 이 레지스터에는 0 이상 10,000 미만의 십진수를 저장할 수 있다. 각 명령어는 이 레지스터에 www.acmicpc.net 정답 code # DSLR from collections import deque import sys input = sys.stdin.readline t = int(input()) for _ in range(t): a,b = map(int,input().split()) q = deque() q.append((a,"")) visit = [False]*10000 while q: num, p..

[baekjoon] 백준 7569번 : 토마토 (by python) bfs 너비우선 탐색

https://www.acmicpc.net/problem/7569 7569번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net 정답 code #토마토 from collections import deque import sys input = sys.stdin.readline dx = [-1,1,0,0,0,0] dy = [0,0,-1,1,0,0] dz = [0,0,0,0,-1,1] queue = deque() m , n , h = map(int,input().split()) box = [] for i i..

[baekjoon] 백준 6063번 : 카잉 달력 (by python 파이썬) 자세한 설명

https://www.acmicpc.net/problem/6064 6064번: 카잉 달력 입력 데이터는 표준 입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 입력 데이터의 수를 나타내는 정수 T가 주어진다. 각 테스트 데이터는 한 줄로 구성된다. www.acmicpc.net 정답 code #카잉 달력 t = int(input()) for _ in range(t): m,n,x,y = map(int,input().split()) f = 1 while x (3-9) % 12 != 0 k = 13 -> (13-9) % 12 != 0 k = 23 -> (23-9) % 12 != 0 k = 33 -> (33-9) % 12 == 0 정답은 33 이 나오게 된다. x = 3(33) y..