[백준][Python] 2636번 치즈 - 코팩
·
백준/DFS&BFS
https://www.acmicpc.net/problem/2636 2636번: 치즈 첫째 줄에는 사각형 모양 판의 세로와 가로의 길이가 양의 정수로 주어진다. 세로와 가로의 길이는 최대 100이다. 판의 각 가로줄의 모양이 윗 줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진 www.acmicpc.net 풀이 BFS 알고리즘을 이용하여서 문제를 풀어주면 됩니다. 단순한 알고리즘 구현이 가능하다면 무리없는 문제입니다. 코드 # 2636번 치즈 import sys from collections import deque input = sys.stdin.readline m, n = map(int, input().split()) grid = [list(map(int, input().split())) for _ in ..
[백준][Python] 16953번 A → B - 코팩
·
백준/DFS&BFS
https://www.acmicpc.net/problem/16953 16953번: A → B 첫째 줄에 A, B (1 ≤ A < B ≤ 109)가 주어진다. www.acmicpc.net 풀이 bfs를 이용하여서 문제를 풀어주었습니다. 코드 # 16953번 A → B from collections import deque a, b = map(int, input().split()) def bfs(): queue = deque([]) queue.append([0, a]) while queue: cnt, c_a = queue.popleft() if c_a < b: queue.append([cnt+1, c_a*2]) queue.append([cnt+1, int(str(c_a)+"1")]) if c_a == b: r..
[백준][Python] 17141번 연구소 2 - 코팩
·
백준/DFS&BFS
https://www.acmicpc.net/problem/17141 17141번: 연구소 2 인체에 치명적인 바이러스를 연구하던 연구소에 승원이가 침입했고, 바이러스를 유출하려고 한다. 승원이는 연구소의 특정 위치에 바이러스 M개를 놓을 것이고, 승원이의 신호와 동시에 바이 www.acmicpc.net 풀이 요구 주어진 연구소의 빈칸을 모두 바이러스에 감염되게 하는데 소요되는 최소시간을 구해주는 것이 문제의 요구이다. 조건 바이러스에 감염되는 시간은 바이러스의 위치에 따라 달라진다. 전체 빈칸이 감염되었는지 확인하기 위해 빈칸의 개수와 바이러스가 놓일 수 있는 칸의 개수를 구해주었다. 구현방법 바이러스의 위치를 조합(Combination라이브러리)를 통해서 구현해준다. 바이러스가 퍼지는 알고리즘은 상하좌..
[백준][Python] 1049번 기타줄 - 코팩
·
백준/구현
https://www.acmicpc.net/problem/1049 1049번: 기타줄 첫째 줄에 N과 M이 주어진다. N은 100보다 작거나 같은 자연수이고, M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 M개의 줄에는 각 브랜드의 패키지 가격과 낱개의 가격이 공백으로 구분하여 주 www.acmicpc.net 풀이 브랜드별로 주어지는 패키지(6개 묶음) 가격, 낱개 가격을 비교하여 브랜드와 상관없이 가장 싼 패키지 가격과 낱개 가격을 구해줍니다. 구해준 최소 패키지 가격과 낱개 가격을 이용해서 패키지+낱개 조합, 패키지 조합, 낱개 조합을 이용하여 가장 싸게 기타줄을 구입할 수 있는 가격을 출력해줍니다. 코드 # 1049번 기타줄 import sys N, M = map(int, sys.stdin.r..
[백준][Python] 1296번 팀 이름 정하기 - 코팩
·
백준/구현
https://www.acmicpc.net/problem/1296 1296번: 팀 이름 정하기 연두는 프로그래밍 대회에 나갈 팀 이름을 정하려고 한다. 미신을 믿는 연두는 이환이에게 공식을 하나 받아왔고, 이 공식을 이용해 우승할 확률이 가장 높은 팀 이름을 찾으려고 한다. 이환 www.acmicpc.net 풀이 주어지는 연두의 이름과 팀 이름의 L, O, V, E의 개수를 파악하여 주어진 식에 대입하여 가장 높은 숫자가 나오는 팀을 출력해줍니다. 코드 # 1296번 팀 이름 정하기 import sys yeondu = input() t = int(input()) teams = [0] * t for i in range(t): teams[i] = sys.stdin.readline().rstrip() ans ..
[백준][Python] 14497번 주난의 난(難) - 코팩
·
백준/DFS&BFS
https://www.acmicpc.net/problem/14497 14497번: 주난의 난(難) 주난이는 크게 화가 났다. 책상 서랍 안에 몰래 먹으려고 숨겨둔 초코바가 사라졌기 때문이다. 주난이는 미쳐 날뛰기 시작했다. 사실, 진짜로 뛰기 시작했다. ‘쿵... 쿵...’ 주난이는 점프의 파 www.acmicpc.net 풀이 BFS를 토대로 문제를 풀어주었습니다. 주난이가 움직이지않고 제자리에서 파동을 보내서 초코바를 훔쳐간 범인을 찾기에 파동의 움직임을 구현해주시면 됩니다. 항상 파동이 전달 될 수 있는 "0"부터 방문할 수 있게 .appendlef()를 사용하여서 학생이 없는 자리인 "1"과 학생이 있는 자리인 1과 구분하여 방문 할 수 있게 코딩해주시면 됩니다. 코드 # 14497번 주난의 난(難..
[백준][Python] 1247번 부호 - 코팩
·
백준/구현
https://www.acmicpc.net/problem/1247 1247번: 부호 총 3개의 테스트 셋이 주어진다. 각 테스트 셋의 첫째 줄에는 N(1 ≤ N ≤ 100,000)이 주어지고, 둘째 줄부터 N개의 줄에 걸쳐 각 정수가 주어진다. 주어지는 정수의 절댓값은 9223372036854775807보다 작거 www.acmicpc.net 풀이 문제에서 원하는 바를 구현만 해주면 해결되는 간단한 문제입니다. 코드 # 1247번 부호 import sys for _ in range(3): t = int(input()) total = 0 for _ in range(t): total += int(sys.stdin.readline()) if total == 0: print(0) elif total > 0: pr..
[백준][Python] 24445번 알고리즘 수업 - 너비 우선 탐색 2 - 코팩
·
백준/DFS&BFS
https://www.acmicpc.net/problem/24445 24445번: 알고리즘 수업 - 너비 우선 탐색 2 첫째 줄에 정점의 수 N (5 ≤ N ≤ 100,000), 간선의 수 M (1 ≤ M ≤ 200,000), 시작 정점 R (1 ≤ R ≤ N)이 주어진다. 다음 M개 줄에 간선 정보 u v가 주어지며 정점 u와 정점 v의 가중치 1인 양 www.acmicpc.net 풀이 sorted(reverse=True)를 이용하여 내림차순을 구현한 뒤 BFS알고리즘을 구현해주시면 됩니다. 코드 # 24445번 알고리즘 수업 from collections import deque import sys # 정점의 개수: N 간선의 수: M 시작정점: R N, M, R = map(int, sys.stdin...
개발자 성현