본문 바로가기

simulation17

[Python] 20056. 마법사 상어와 파이어볼 www.acmicpc.net/problem/20056 20056번: 마법사 상어와 파이어볼 첫째 줄에 N, M, K가 주어진다. 둘째 줄부터 M개의 줄에 파이어볼의 정보가 한 줄에 하나씩 주어진다. 파이어볼의 정보는 다섯 정수 ri, ci, mi, si, di로 이루어져 있다. 서로 다른 두 파이어볼의 위치 www.acmicpc.net Point 첫 입력에서 서로 다른 두 파이어볼 위치가 같은 경우는 없음 파이어볼 질량이 0 이 되면 소멸 Tip 2차원 리스트 배열을 선언하여 이동이 끝난 뒤 파이어볼 합치기/분열을 연산 파이어볼의 방향을 연산할 때, 총합이 짝수/홀수냐로 모두 짝수/홀수인지 아닌지를 판별하면 안된다. 짝짝홀홀일 때 총합은 짝수이기 때문이다. 메모리 (제한: 512MB) 138280 KB .. 2021. 4. 24.
[Python] 20057. 마법사 상어와 토네이도 www.acmicpc.net/problem/20057 20057번: 마법사 상어와 토네이도 마법사 상어가 토네이도를 배웠고, 오늘은 토네이도를 크기가 N×N인 격자로 나누어진 모래밭에서 연습하려고 한다. 위치 (r, c)는 격자의 r행 c열을 의미하고, A[r][c]는 (r, c)에 있는 모래의 양을 www.acmicpc.net Point 토네이도가 (0,0) 도달 시 종료 한칸 움직일 때마다 모래를 퍼트림 Tip 반시계 방향 회전가능할 때까지 전진 시간 절약을 위해 현 위치의 모래가 0이 아닐때만 (A[y][x] != 0) 모래를 퍼트림 메모리 (제한: 512MB) 132984 KB 시간 (제한: 1초) 476 ms 결과 100% import sys from collections import deque.. 2021. 4. 24.
[Python] 20055. 컨베이어 벨트 위의 로봇 www.acmicpc.net/problem/20055 20055번: 컨베이어 벨트 위의 로봇 길이가 N인 컨베이어 벨트가 있고, 길이가 2N인 벨트가 이 컨베이어 벨트를 위아래로 감싸며 돌고 있다. 벨트는 길이 1 간격으로 2N개의 칸으로 나뉘어져 있으며, 각 칸에는 아래 그림과 같이 1부 www.acmicpc.net Point 내구도 0칸에는 로봇이 올라가지 못하며, 내려가기만 가능 벨트 회전 시 로봇 좌표 변경 이동하려는 칸에 로봇이 없어야하며 내구도 1이상 올라가는 위치에서 로봇이 없어야만 올림 Tip deque를 사용해 구현하면 코드가 간결해짐 로봇 좌표를 체크할 check 배열을 생성해서 계속 업데이트 해줌 메모리 (제한: MB) 129232 KB 시간 (제한: 초) 688 ms 결과 100% .. 2021. 4. 24.
[Python] 19238. 스타트 택시 www.acmicpc.net/problem/19238 19238번: 스타트 택시 첫 줄에 N, M, 그리고 초기 연료의 양이 주어진다. (2 ≤ N ≤ 20, 1 ≤ M ≤ N2, 1 ≤ 초기 연료 ≤ 500,000) 연료는 무한히 많이 담을 수 있기 때문에, 초기 연료의 양을 넘어서 충전될 수도 있다. 다 www.acmicpc.net Point 처음엔 매 승객마다 최단거리를 구해줬고 시간초과가 났다. 그럴 필요 없이 현재 택시 위치 기준으로 맵의 최단거리를 구하고 Pop(index) 를 이용해서 연산을 반복한다. 메모리 (제한: MB) 124568 KB 시간 (제한: 초) 204 ms 결과 100% def shortest_path(taxi): global n dist = [[-1]*n for _ in .. 2021. 4. 23.
[Python] 17142. 연구소 3 www.acmicpc.net/problem/17142 17142번: 연구소 3 인체에 치명적인 바이러스를 연구하던 연구소에 승원이가 침입했고, 바이러스를 유출하려고 한다. 바이러스는 활성 상태와 비활성 상태가 있다. 가장 처음에 모든 바이러스는 비활성 상태이고 www.acmicpc.net 아무리 수정해도 계속 시간초과 됨 ㅠㅠ 다음에 재도전 메모리 (제한: MB) 0 KB 시간 (제한: 초) 0 ms 결과 시간초과 import itertools def bfs(_lst,_dist): global n,answer,vacumm lst = list(_lst) cnt = 0 infected = 0 for i in range(len(lst)): _dist[lst[i][0]][lst[i][1]] = 0 while T.. 2021. 4. 20.
[Python] 16235. 나무 재테크 www.acmicpc.net/problem/16235 16235번: 나무 재테크 부동산 투자로 억대의 돈을 번 상도는 최근 N×N 크기의 땅을 구매했다. 상도는 손쉬운 땅 관리를 위해 땅을 1×1 크기의 칸으로 나누어 놓았다. 각각의 칸은 (r, c)로 나타내며, r은 가장 위에서부터 www.acmicpc.net 시간초과 (0%) def spring(x,y,z): if ground[x][y] < z: z = -z #사망 else: ground[x][y] -= z z += 1 return x,y,z def summer(x,y,z): if z < 0: ground[x][y] += abs(z)//2 def fall(x,y,z): global N child = [] for i in range(len(direct.. 2021. 4. 15.
[Python] 14503. 로봇 청소기 https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net 문제 조건에 첫행,끝행,첫열,끝열은 모두 벽으로 막혀있다고 했으므로 next_r과 next_c가 이동할 수 있는지 확인할 필요 없다. 문제를 잘 읽어보면 알고리즘 구현의 힌트를 찾을 수 있다. di = ((-1,0),(0,1),(1,0),(0,-1)) N, M = map(int, input().split()) r, c, d = map(int, input().split()) MAP = [list(.. 2021. 4. 14.
[Python] 14499. 주사위 굴리기 https://www.acmicpc.net/problem/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 시뮬레이션 문제이다. 키 포인트는 주사위 전개도를 배열로 치환하기 문자열 slicing으로 동서남북 이동 결과 리턴 주의할 점은 최초 입력값 받을 때 x,y가 아닌 y,x로 입력을 받아야 한다. def east(dice): return list(str(dice[0])+str(dice[5])+str(dice[2])+str(dice[4.. 2021. 4. 7.
[Python] 3190. 뱀 https://www.acmicpc.net/problem/3190 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net 완탐실시하였다. 방향이 전환될 때의 좌표와 방향을 Queue에 저장하는 것이 포인트. Task Score 100% def solve(MAP): global N curr_head_y = curr_head_x = 0 curr_tail_y = curr_tail_x = 0 curr_head_di = 0 curr_tail_di = 0 turn_point = [] time = 0 while True: if time.. 2021. 4. 3.
728x90
반응형