전체 글
[백준14890&파이썬] 여러 실패케이스를 한번에 처리할 수 있는지 고민해보자
# 문제 백준 14890 경사로 파이썬 풀이 14890번: 경사로 첫째 줄에 N (2 ≤ N ≤ 100)과 L (1 ≤ L ≤ N)이 주어진다. 둘째 줄부터 N개의 줄에 지도가 주어진다. 각 칸의 높이는 10보다 작거나 같은 자연수이다. www.acmicpc.net # 코드 import sys def print2D(arr) : for i in arr : print(i) N, L = map(int,sys.stdin.readline().split()) board = list() for _ in range(N) : line = list(map(int,sys.stdin.readline().split())) board.append(line) # print2D(board) # flat한지 확인해야 한다. # Fla..
[백준15683&파이썬] 여러경우의 4방향 탐색 및 회전 가지치기와 완전탐색
# 문제 백준 15683 감시 파이썬 풀이 15683번: 감시 스타트링크의 사무실은 1×1크기의 정사각형으로 나누어져 있는 N×M 크기의 직사각형으로 나타낼 수 있다. 사무실에는 총 K개의 CCTV가 설치되어져 있는데, CCTV는 5가지 종류가 있다. 각 CCTV가 감 www.acmicpc.net # 코드 import sys def print2D(arr) : for i in arr : print(i) DIRS = [ (-1,0),(0,1),(1,0),(0,-1) ] CCTVS_DIR = [ [-1], [1], # 1 [1,3], # 2 [0,1], # 3 [0,1,3], # 4 [0,1,2,3], # 5 ] N,M = map(int,sys.stdin.readline().split()) board = li..
[백준14891&파이썬] 톱니바퀴를 돌릴때는 deque를 사용하자
# 문제 백준 14891 파이썬 풀이 14891번: 톱니바퀴 총 8개의 톱니를 가지고 있는 톱니바퀴 4개가 아래 그림과 같이 일렬로 놓여져 있다. 또, 톱니는 N극 또는 S극 중 하나를 나타내고 있다. 톱니바퀴에는 번호가 매겨져 있는데, 가장 왼쪽 톱니바퀴 www.acmicpc.net # 코드 import sys from collections import deque LEFT = -1 RIGHT = 1 # N극은 0, S극은 1 A = deque(list(map(int, sys.stdin.readline().strip()))) B = deque(list(map(int, sys.stdin.readline().strip()))) C = deque(list(map(int, sys.stdin.readline()...
[백준14503&파이썬] 회전은 모듈러연산을 이용하자
# 문제 백준 14503 로봇청소기 파이썬 풀이 14503번: 로봇 청소기 첫째 줄에 방의 크기 $N$과 $M$이 입력된다. $(3 \le N, M \le 50)$ 둘째 줄에 처음에 로봇 청소기가 있는 칸의 좌표 $(r, c)$와 처음에 로봇 청소기가 바라보는 방향 $d$가 입력된다. $d$가 $0$인 경우 북쪽 www.acmicpc.net # 코드 import sys from collections import deque def print2D(arr): for i in arr : print(i) print() N,M = map(int,sys.stdin.readline().split()) # 로봇 청소기 위치, 바라보는 방향 r,c,d = map(int,sys.stdin.readline().split())..
[백준14499&파이썬] 주사위를 굴릴때의 조건에 대해 생각해보자
# 문제 백준 14499 주사위 굴리기 파이썬 풀이 14499번: 주사위 굴리기 첫째 줄에 지도의 세로 크기 N, 가로 크기 M (1 ≤ N, M ≤ 20), 주사위를 놓은 곳의 좌표 x, y(0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), 그리고 명령의 개수 K (1 ≤ K ≤ 1,000)가 주어진다. 둘째 줄부터 N개의 줄에 지 www.acmicpc.net # 코드 import copy import sys def print2D(arr) : for i in arr : print(i) print() RIGHT = 1 LEFT = 2 UP = 3 DOWN = 4 dirs = [ (-1,-1), (0,1), (0,-1),(-1,0),(1,0) ] dice = [0,0,0,0,0,0] # 지도크기, 좌표, 명..