전체 글
[백준3190&파이썬] 스네이크게임은 deque로 구현이 가능하다.
# 문제 백준 3190 뱀 파이썬 풀이 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net # 코드 import sys from collections import deque def print2D(arr) : for i in arr : print(i) print() LEFT = 'LEFT' RIGHT = 'RIGHT' UP = 'UP' DOWN = 'DOWN' DIR_DEFAULT = (0,1,RIGHT) N = int(sys.stdin.readline().strip()) K = int(sys.stdin.readline(..
[백준1865&파이썬] 플로이드 와샬을 통해 음의 사이클 판단하기
# 문제 백준 1865 웜홀 파이썬 풀이 1865번: 웜홀 첫 번째 줄에는 테스트케이스의 개수 TC(1 ≤ TC ≤ 5)가 주어진다. 그리고 두 번째 줄부터 TC개의 테스트케이스가 차례로 주어지는데 각 테스트케이스의 첫 번째 줄에는 지점의 수 N(1 ≤ N ≤ 500), www.acmicpc.net # 코드 import sys from collections import defaultdict def print2D(arr) : for i in arr : print(i) print() TC = int(sys.stdin.readline().strip()) def solve() : # N 지점의 개수, M 도로의 개수, W 월홀의 개수 N,M,W = map(int,sys.stdin.readline().split(..
[백준9935&파이썬] 리스트 슬라이싱은 느리다. 문자열문제는 스택을 생각해보자
# 문제 백준 9935 문자열 폭발 파이썬 풀이 9935번: 문자열 폭발 첫째 줄에 문자열이 주어진다. 문자열의 길이는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 둘째 줄에 폭발 문자열이 주어진다. 길이는 1보다 크거나 같고, 36보다 작거나 같다. 두 문자열은 모 www.acmicpc.net # 코드 import sys s = list(sys.stdin.readline().strip()) bomb = list(sys.stdin.readline().strip()) bomb_size = len(bomb) stk = list() clear_cnt = 0 bomb_idx = bomb_size-1 temp = 0 while len(s) != 0: temp +=1 s_poped = s.pop() s..
[백준1043&파이썬] 적절한 자료구조 사용하기, 방문처리를 통해 무한루프에 빠지지 않게 하기
# 문제 백준 1043 거짓말 파이썬 풀이 1043번: 거짓말 지민이는 파티에 가서 이야기 하는 것을 좋아한다. 파티에 갈 때마다, 지민이는 지민이가 가장 좋아하는 이야기를 한다. 지민이는 그 이야기를 말할 때, 있는 그대로 진실로 말하거나 엄청나게 www.acmicpc.net # 코드 import sys from collections import defaultdict from collections import deque def print2D(arr): for a in arr : print(a) # 사람의 수 N, 파티의 수 M N,M = map(int,sys.stdin.readline().split()) # 진실을 아는 사람의 수, 0번인덱스는 총 크기 trues = list(map(int,sys.st..
[백준17070&파이썬] State를 통해서 파이프의 이동방향을 다각화 하기
# 문제 백준 17070 파이프 옮기기1 파이썬 풀이 17070번: 파이프 옮기기 1 유현이가 새 집으로 이사했다. 새 집의 크기는 N×N의 격자판으로 나타낼 수 있고, 1×1크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 (r, c)로 나타낼 수 있다. 여기서 r은 행의 번호, c는 열의 www.acmicpc.net # 코드 import sys def print2D(arr) : for i in arr : print(i) N = int(sys.stdin.readline().strip()) board = list() for _ in range(N) : line = list(map(int,sys.stdin.readline().split())) board.append(line) # 파이프를 계속 바꿔가면서..