•알고리즘(Algorithm )
[백준17837&파이썬] deque는 신이다. reverse, extend 활용하여 유사 링크드리스트처럼 사용하자.
# 문제 백준17837 새로운게임2 파이썬 풀이 17837번: 새로운 게임 2 재현이는 주변을 살펴보던 중 체스판과 말을 이용해서 새로운 게임을 만들기로 했다. 새로운 게임은 크기가 N×N인 체스판에서 진행되고, 사용하는 말의 개수는 K개이다. 말은 원판모양이고, 하 www.acmicpc.net # 코드 import sys from collections import deque def print2D(arrs) : print("---") for i in arrs : print(i) DIR_RIGHT = 1 DIR_LEFT = 2 DIR_UP = 3 DIR_DOWN = 4 dirs = [ # 우,좌,상,하 (0, 0), (0, 1), (0, -1), (-1,0), (1,0) ] class Pawn() : de..
[백준17143&파이썬] 클래스를 만들어서 풀면 생각하기 쉽다
# 문제 17143번: 낚시왕 낚시왕이 상어 낚시를 하는 곳은 크기가 R×C인 격자판으로 나타낼 수 있다. 격자판의 각 칸은 (r, c)로 나타낼 수 있다. r은 행, c는 열이고, (R, C)는 아래 그림에서 가장 오른쪽 아래에 있는 칸이다. www.acmicpc.net # 코드 import sys def print2D(arrs) : print("--") for i in arrs : print(*i) DIR_UP = 1 DIR_DOWN = 2 DIR_RIGHT = 3 DIR_LEFT = 4 STATE_LIVE = 1 STATE_DIE = 0 dirs = [ (0,0),(-1,0),(1,0),(0,1),(0,-1) ] sharks = list() R,C,M = map(int,sys.stdin.readli..
[백준17822&파이썬] 원판을 돌릴때는 deque와 원형큐를 연상해보자
# 문제 백준 17822 원판 돌리기 17822번: 원판 돌리기 반지름이 1, 2, ..., N인 원판이 크기가 작아지는 순으로 바닥에 놓여있고, 원판의 중심은 모두 같다. 원판의 반지름이 i이면, 그 원판을 i번째 원판이라고 한다. 각각의 원판에는 M개의 정수가 적혀 www.acmicpc.net # 코드 import sys from collections import deque def print2D(arr): print("--") for i in range(len(arr)): for j in range(len(arr[i])): print(arr[i][j], end=" ") print() # 회전 방향 정의 TURN_RIGHT = 0 # 시계방향 TURN_LEFT = 1 # 반시계방향 # 탐색 방향 정의 ..
[백준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()...