목록Python (64)
하루일문
문제 1743번: 음식물 피하기 첫째 줄에 통로의 세로 길이 N(1 ≤ N ≤ 100)과 가로 길이 M(1 ≤ M ≤ 100) 그리고 음식물 쓰레기의 개수 K(1 ≤ K ≤ N×M)이 주어진다. 그리고 다음 K개의 줄에 음식물이 떨어진 좌표 (r, c)가 주어진다 www.acmicpc.net 코드 BFS import sys from collections import deque input = sys.stdin.readline dx = [1, -1, 0, 0] dy = [0, 0, 1, -1] def BFS(graph, visitied, x, y): global cnt queue = deque([(x, y)]) cnt += 1 visitied[x][y] = cnt while queue: n, m = queu..
문제 1076번: 저항 첫째 줄에 첫 번째 색, 둘째 줄에 두 번째 색, 셋째 줄에 세 번째 색이 주어진다. 위의 표에 있는 색만 입력으로 주어진다. www.acmicpc.net 코드 color_dic = { "black":(0, 1), "brown":(1, 10), "red":(2, 100), "orange":(3, 1000), "yellow":(4, 10000), "green":(5, 100000), "blue":(6, 1000000), "violet":(7, 10000000), "grey":(8, 100000000), "white":(9, 1000000000), } value = "" for _ in range(2): color = input() c = color_dic[color][0] value..
문제 1032번: 명령 프롬프트 첫째 줄에 파일 이름의 개수 N이 주어진다. 둘째 줄부터 N개의 줄에는 파일 이름이 주어진다. N은 50보다 작거나 같은 자연수이고 파일 이름의 길이는 모두 같고 길이는 최대 50이다. 파일이름은 www.acmicpc.net 코드 num = int(input()) word = list(input()) for _ in range(num-1): word_2 = input() for n in range(len(word)): if word[n] == word_2[n]: continue else: word[n] = "?" print(*word, sep = "") 해설 word를 리스트로 받고 이후 입력 문자와 하나하나 비교하면서 틀리다면 word의 해당 인덱스를 "?"로 바꿔줬다.
문제 14248번: 점프 점프 첫 번째 줄에는 돌다리의 돌 개수 n이 주어진다.(1≤n≤100,000) 돌의 번호는 왼쪽부터 1번에서 n번이다. 다음 줄에는 그 위치에서 점프할 수 있는 거리 Ai가 주어진다.(1≤Ai≤100,000) 다음 줄에는 출 www.acmicpc.net 코드 import sys input = sys.stdin.readline sys.setrecursionlimit(10**6) def DFS(start): global cnt visited[start] = True cnt += 1 for _ in range(2): if (0
문제 1021번: 회전하는 큐 첫째 줄에 큐의 크기 N과 뽑아내려고 하는 수의 개수 M이 주어진다. N은 50보다 작거나 같은 자연수이고, M은 N보다 작거나 같은 자연수이다. 둘째 줄에는 지민이가 뽑아내려고 하는 수의 위치가 www.acmicpc.net 예제 10 3 2 9 5 출력 8 이 경우 아래와 같이 변화하는 하며, 돌아가는 순서를 출력해주는 문제이다. [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] → [ 3, 4, 5, 6, 7, 8, 9, 10, 1] → [1, 3, 4, 5, 6, 7, 8, 9, 10] → [10, 1, 3, 4, 5, 6, 7, 8, 9] → [10, 1, 3, 4, 5, 6, 7, 8].... 코드 import sys from collections impor..
문제 17298번: 오큰수 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다. www.acmicpc.net 답을 보기 쉬울 것 같길래 도전했다 큰코다쳤다. 문제 자체는 이중for문으로 답 자체는 볼 순 있지만, 시간 복잡도에 걸리기때문에 시간초과가 뜬다. 그래서 stack을 이용했는데, stack 방법에서도 상다히 애를 먹었다 코드 정답 코드 import sys input = sys.stdin.readline n = int(input()) li = list(map(int, input().split())) stack = [0] answer = [-1] * n for i in ..
문제 14716번: 현수막 혁진이의 생각대로 프로그램을 구현했을 때, 현수막에서 글자의 개수가 몇 개인지 출력하여라. www.acmicpc.net 코드 import sys sys.setrecursionlimit(10**6) input = sys.stdin.readline dx = [1, 1, 1, 0, 0, -1, -1, -1] dy = [-1, 0, 1, -1, 1, 1, 0, -1] def DFS(graph, visited, i, j): visited[i][j] = True for _ in range(8): X = i + dx[_] Y = j + dy[_] if 0
문제 10799번: 쇠막대기 여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저 www.acmicpc.net 코드 replace import sys input = sys.stdin.readline stick = input().strip() stick=stick.replace("()", "0") open = 0 st_c = 0 for i in stick: if i == "0": st_c += open elif i == "(": open += 1 elif i == ")": open -= 1 st_c += 1 print(st_c) stack import sys input = sys..