[백준 21611번] 마법사 상어와 블리자드
https://www.acmicpc.net/problem/21611import sysfrom collections import dequeinput = sys.stdin.readline# 가장 처음에 상어가 있는 칸을 제외한 나머지 칸에는 구슬이 하나 들어갈 수 있다# 구슬은 1번 구슬, 2번 구슬, 3번 구슬이 있다# 같은 번호를 가진 구슬이 번호가 연속하는 칸에 있으면, 그 구슬을 연속하는 구슬이라고 한다.# 블리자드 마법을 시전하려면 방향 di와 거리 si를 정해야 한다. # 총 4가지 방향 ↑, ↓, ←, → (1, 2, 3, 4)# 마법사 상어는 블리자드를 총 M번 시전# 시전한 마법의 정보가 주어졌을 때# 출력 : 폭발한 1번 구슬의 개수, 폭발한 2번 구슬의 개수, 폭발한 3번 구슬의 개수N,..
2024. 10. 5.
[백준 15685번] 드래곤 커브
n = int(input()) area = [[0]*101 for _ in range(101)] data = [list(map(int,input().split())) for _ in range(n)] answer = 0 dx = [1,0,-1,0] dy = [0,-1,0,1] for x,y,d,g in data: routes = [d] area[x][y] = 1 for i in range(g): for j in range(len(routes)-1,-1,-1): routes.append((routes[j]+1)%4) for route in routes: nx, ny = x + dx[route], y + dy[route] area[nx][ny] = 1 x, y = nx, ny for i in range(10..
2023. 9. 2.
[백준 14499번] 주사위 굴리기
n, m, dice_x, dice_y, k = map(int,input().split()) area = [list(map(int,input().split())) for _ in range(n)] move_list = list(map(int,input().split())) dx = [0,0,0,-1,1] dy = [0,1,-1,0,0] # 상단, 남, 동, 서, 북, 하단 dice = [0 for _ in range(6)] for move in move_list: dice_x += dx[move] dice_y += dy[move] if dice_x = n or dice_y =m: dice_x -= dx[move] dice_y -= dy[move] con..
2023. 8. 30.
[백준 9207번] 페그 솔리테어
9207번: 페그 솔리테어 각 테스트 케이스에 대해서, 핀을 움직여서 남길 수 있는 핀의 최소 개수와 그 개수를 만들기 위해 필요한 최소 이동 횟수를 출력한다. www.acmicpc.net from collections import deque n = int(input()) dx = [-1,1,0,0] dy = [0,0,-1,1] dx_2 = [-2,2,0,0] dy_2 = [0,0,-2,2] result = [] def move(movetime): global min_count, min_movement pin_list = [] for i in range(5): for j in range(9): if area[i][j] == 'o': pin_list.append((i,j)) if len(pin_list) ..
2023. 8. 23.