문제 (링크) https://www.acmicpc.net/problem/2579 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net 나의 풀이 n = int(input()) stairs = [0] * (n + 1) d = [0] * (n + 1) for i in range(1, n + 1): stairs[i] = int(input()) # 계단은 한 번에 한 개 or 두 개 # 세 개 연속 X # 마지막 무조건 도착 if n == 1: print(stairs[n]) elif n == 2: print(stairs[1] + st..
백준
문제 (링크) https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 나의 풀이 n = int(input()) schedule = [] for _ in range(n): schedule.append(list(map(int, input().split()))) schedule = sorted(schedule, key= lambda x: x[0]) schedule = sorted(schedule, key= lambda x: x[1]) ans = 1 end_time = schedule[0][1] for i in range(1, n): if end_time
문제 (링크) https://www.acmicpc.net/problem/13305 13305번: 주유소 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1 www.acmicpc.net 나의 풀이 n = int(input()) ans = 0 cities = list(map(int, input().split())) prices = list(map(int, input().split())) min_price = 1000000000 min_price_index = -1 for i in range(n-1): if prices[i] < min_price: min..
문제 (링크) https://www.acmicpc.net/problem/10026 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net 나의 풀이 from collections import deque visited = [[False] * n for _ in range(n)] move = [(0, 1), (0, -1), (1, 0), (-1, 0)] graph = [[] * n for _ in range(n)] for i in range(n): color = str(input()) for x in color: ..
문제 (링크) https://www.acmicpc.net/problem/11724 11724번: 연결 요소의 개수 첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주 www.acmicpc.net 나의 풀이 # BFS 이용 from collections import deque N, M = map(int, input().split()) visited = [False] * (N+1) graph = [[] for _ in range(N+1)] for _ in range(M): x, y = map(int, input()...
시간 제한 메모리 제한 1 초 256 MB 문제 (링크) https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net 나의 풀이 from collections import deque dx = [0, 0, 1, -1] dy = [1, -1, 0, 0] m, n = map(int, input().split()) graph = [list(map(int, input().split())) for _ in range(n)] q = deque() for..
시간 제한 메모리 제한 1 초 256 MB 문제 (링크) https://www.acmicpc.net/problem/7562 7562번: 나이트의 이동 체스판 위에 한 나이트가 놓여져 있다. 나이트가 한 번에 이동할 수 있는 칸은 아래 그림에 나와있다. 나이트가 이동하려고 하는 칸이 주어진다. 나이트는 몇 번 움직이면 이 칸으로 이동할 수 www.acmicpc.net 나의 풀이 from collections import deque # 나이트의 8가지 이동 dx = [1, 1, -1, -1, 2, 2, -2, -2] dy = [2, -2, 2, -2, 1, -1, 1, -1] def bfs(start_x, start_y, target_x, target_y): q = deque() q.append((start..
시간 제한 메모리 제한 1 초 128 MB 문제 (링크) https://www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net 나의 풀이 import sys from collections import deque n = int(sys.stdin.readline()) graph = [] # 각 집으로의 이동을 표현할 좌표리스트 dx = [1, -1, 0, 0] dy = [0, 0, 1, -1] for _ in range(n): graph.append(list(map(in..