본문 바로가기

python328

[백준 - SILVER 2] 1260. DFS와 BFS - Python3 1260. DFS와 BFS https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net 내 풀이 - 실패 N, M, V = map(int, input().split()) graph = {i:[] for i in range(1, N+1)} for _ in range(M): a, b = map(int, input().split()) graph[a].append(b) graph[b].append(a) for g in grap.. 2021. 9. 30.
[백준 - SILVER 5] 1436. 영화감독 숌 - Python3 1436. 영화감독 숌 https://www.acmicpc.net/problem/1436 1436번: 영화감독 숌 666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타 www.acmicpc.net 내 풀이 - 실패 N = int(input()) end = "666" print(int(str(N-1)+end)) 666, 1666, 2666, 3666, ... 의 순서라면 (N-1) 666 의 형태를 갖는다고 생각함 근데.. 아니었다... 5666 다음에는 6666 이 아니라 6660 이 됨 => ..., 5666, 6660, 6661, 6662, 6663, 6664,.. 2021. 9. 30.
[백준 - GOLD 5] 1107. 리모컨 - Python3 1107. 리모컨 https://www.acmicpc.net/problem/1107 1107번: 리모컨 첫째 줄에 수빈이가 이동하려고 하는 채널 N (0 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 고장난 버튼의 개수 M (0 ≤ M ≤ 10)이 주어진다. 고장난 버튼이 있는 경우에는 셋째 줄에는 고장난 버튼 www.acmicpc.net 내 풀이 - 실패 N = input() M = int(input()) inp = input().split() # 채널 변경이 필요 없거나 불가능한 경우 if N == "100" or M == 10: print(0) else: # nums => 모든 버튼별 시작 버튼을 저장 nums = {str(i): i for i in range(10)} # unable => 고.. 2021. 9. 28.
[백준 - BRONZE 1] 1259. 팰린드롬수 - Python3 1259. 팰린드롬수 https://www.acmicpc.net/problem/1259 1259번: 팰린드롬수 입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다. 입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다. www.acmicpc.net 내 풀이 - 성공 while True: num = input() if num == "0": break yn = 1 for i in range(len(num)//2): if num[i] != num[len(num)-i-1]: print("no") yn = 0 break if yn: print("yes") 0 이 나올 때까지 입력을 계속 받아야 하므로 while True 반으로 잘라서 대칭이 되.. 2021. 9. 28.
[백준 - SILVER 1] 1074. Z - Python3 1074. Z https://www.acmicpc.net/problem/1074 1074번: Z 한수는 크기가 2N × 2N인 2차원 배열을 Z모양으로 탐색하려고 한다. 예를 들어, 2×2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. N > 1인 경우, 배열을 www.acmicpc.net 내 풀이 - 실패 N, r, c = map(int, input().split()) w = 2 ** N size = w * w block = size // 8 ans = 0 if r % 2 == 0 and c % 2 == 0: ans += 0 elif r % 2 == 0 and c % 2 != 0: ans += 1 elif r % 2 != 0 and c % 2 == 0: an.. 2021. 9. 27.
[백준 - SILVER 5] 1181. 단어 정렬 - Python3 1181. 단어 정렬 https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 내 풀이 - 성공 import collections N = int(input()) words = [] for i in range(N): w = input() if w not in words: words.append(w) words.sort(key=len) dic = collections.defaultdict(list) for w in words: dic[len(w).. 2021. 9. 27.