본문 바로가기

백준18

[백준 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.
[백준 17140번] 이차원 배열과 연산 17140번: 이차원 배열과 연산 첫째 줄에 r, c, k가 주어진다. (1 ≤ r, c, k ≤ 100) 둘째 줄부터 3개의 줄에 배열 A에 들어있는 수가 주어진다. 배열 A에 들어있는 수는 100보다 작거나 같은 자연수이다. www.acmicpc.net r,c,k = map(int,input().split()) arr = [list(map(int,input().split())) for _ in range(3)] answer = 0 def transpose(arr): return list(zip(*arr)) def calculate_row(index): row = arr[index] temp_dict = dict() sorted_row = [] for i in row: if i == 0: continu.. 2023. 9. 19.
[백준 19236번] 청소년 상어 19236번: 청소년 상어 첫째 줄부터 4개의 줄에 각 칸의 들어있는 물고기의 정보가 1번 행부터 순서대로 주어진다. 물고기의 정보는 두 정수 ai, bi로 이루어져 있고, ai는 물고기의 번호, bi는 방향을 의미한다. 방향 bi는 www.acmicpc.net import copy def find_x_y(fish_number,area): # 물고기의 x,y 좌표를 찾는 함수 for i in range(4): for j in range(4): if area[i][j][0] == fish_number: return i,j def find_shark_loc(area): # 상어의 x,y 좌표를 찾는 함수 for i in range(4): for j in range(4): if area[i][j][0] == .. 2023. 9. 6.
[백준 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.