전체 글 166

[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..

[baekjoon] 백준 5525번 : IOIO (by python 파이썬)

https://www.acmicpc.net/problem/5525 5525번: IOIOI N+1개의 I와 N개의 O로 이루어져 있으면, I와 O이 교대로 나오는 문자열을 PN이라고 한다. P1 IOI P2 IOIOI P3 IOIOIOI PN IOIOI...OI (O가 N개) I와 O로만 이루어진 문자열 S와 정수 N이 주어졌을 때, S안에 PN이 몇 www.acmicpc.net 정답 code # IOIO import sys input = sys.stdin.readline n = int(input()) m = int(input()) s = input() ans = 0 cnt = 0 i = 1 while i< m-1: if s[i-1] == 'I' and s[i] == 'O' and s[i+1] == "I"..