파이썬) 미로 만들기 -BOJ
https://www.acmicpc.net/problem/1347 n = int(input()) s = input() arr = [[0, 0]] # 동 남 서 북 0,1,2,3 x, y, d = 0, 0, 1 for i in s: if i == 'R': d = (d + 1) % 4 elif i == 'L': d = (d - 1) % 4 else: if d == 0: # 동 x = x y += 1 elif d == 1: x += 1 y = y elif d == 2: x = x y -= 1 else: x -= 1 y = y arr.append([x, y]) min_x = 0 min_y = 0 max_x = 0 max_y = 0 for i in arr: x, y = i[0], i[1] min_x = min(x..
파이썬) 로봇 청소기 - BOJ
https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 첫째 줄에 방의 크기 $N$과 $M$이 입력된다. $(3 \le N, M \le 50)$ 둘째 줄에 처음에 로봇 청소기가 있는 칸의 좌표 $(r, c)$와 처음에 로봇 청소기가 바라보는 방향 $d$가 입력된다. $d$가 $0$인 경우 북쪽 www.acmicpc.net import sys input = sys.stdin.readline graph = [] dr = [-1, 0, 1, 0] dc = [0, 1, 0, -1] n, m = map(int, input().split()) r, c, d = map(int, input().split()) for _ in range(n): graph.append(list(ma..
파이썬) 회전초밥 - BOJ
https://www.acmicpc.net/problem/2531 2531번: 회전 초밥 첫 번째 줄에는 회전 초밥 벨트에 놓인 접시의 수 N, 초밥의 가짓수 d, 연속해서 먹는 접시의 수 k, 쿠폰 번호 c가 각각 하나의 빈 칸을 사이에 두고 주어진다. 단, 2 ≤ N ≤ 30,000, 2 ≤ d ≤ 3,000, 2 ≤ www.acmicpc.net 이 문제는 꽤나 까다로웠다. 문제 이해와 풀이에는 무척 쉬웠지만 시간초과가 많이 발생하는 문제였다. 우선 처음 제출한 코드이다. from collections import deque import sys input = sys.stdin.readline n, d, k, c = map(int, input().split()) arr = [] for _ in rang..
파이썬)체스판 위의 공 - BOJ(실패)
https://www.acmicpc.net/problem/16957 16957번: 체스판 위의 공 크기가 R×C인 체스판이 있고, 체스판의 각 칸에는 정수가 하나씩 적혀있다. 체스판에 적혀있는 정수는 모두 서로 다르다. 체스판의 각 칸 위에 공을 하나씩 놓는다. 이제 공은 다음과 같은 규칙 www.acmicpc.net import sys input = sys.stdin.readline r, c = map(int, input().split()) arr = [] board = [] for _ in range(r): a = [0] * c board.append(a) arr.append(list(map(int, input().split()))) dx = [0, 0, 1, -1, -1, -1, 1, 1] dy =..