첫 40분 풀이 실패.. 인 듯.. 애초에 능력도 안 되면서 시간 제한을 너무 빡빡하게 잡았나..? ㅋㅋㅋ
우선 집중이 잘 안 돼서 문제 정리하는 데 오래 걸렸다.. 시험 잡히자마자 계속 이 상태다.. 긴장과 불안 때문에 문제가 안 읽혀.. 😥 멘탈의 문제라기보다는 실력의 문제인 것 같기는 하다.. 경험치 부족.. 아 한 달만 있다가 시험 보면 좋겠다 ㅋㅋㅋ
하여간 좌표 안에 데이터로 방향 정보를 거의 사용 안 하고 만들어나가다가 3번 조건 사전 순 변환 설명 보고 얼씨구..? 이것봐라? 내 풀이는 다른 방향인데..? 하고 멈춰버렸다. 한 번 망했을 때 다시 부딪힐 용기!!가 필요한데 최근에 풀이 찾아보는게 습관이 되어서 그런가 너무 하기 싫다. 진짜 요즘 근성제로.. 혹은 마이너스 ^^ ... 돌아왕~
뭐 시험시간도 늘었다는데, 딱 한 번만 더 부딪혀봅시다 이 문제! 일단 아래 풀이는 메모.
############
#포기한 풀이#
############
import copy
m, s = map(int, input().split())
board = [[0]*4 for _ in range(4)]
fishes = [list(map(int, input().split())) for _ in range(m)]
for fish in fishes:
x, y, d = fish
board[x][y] += 1
shark_x, shark_y = map(int, input().split())
fish_count = m
dx = [0, -1, -1, -1, 0, 1, 1, 1]
dy = [-1, -1, 0, 1, 1, 1, 0, -1]
for _ in range(s):
#1 복제마법. #5에서 결과 나타남
coppied_fishes = copy.deepcopy(fishes)
#2 물고기 이동
new_fishes = []
for fish in fishes:
x, y, d = fish
move_possibility = False
for i in range(8):
nx = x + dx[(d+i)%8]
ny = y + dy[(d+i)%8]
if 0 <= nx < 4 and 0 <= ny < 4 and nx != shark_x and ny != shark_y and board[nx][ny] == 10: #물고기냄새:10
move_possibility = True
board[x][y] -= 1
board[nx][ny] += 1
new_fishes.append((nx, ny, (d+i)%8))
break
if move_possibility == False:
new_fishes.append((x, y, d))
fishes = new_fishes
#3 상어 이동
shark_move_possibility = False
remove_list = []
for i in range(8):
remove = []
for k in range(3):
shark_nx = x + dx[(d+i)%8]
shark_ny = y + dy[(d+i)%8]
if 0 <= nx < 4 and 0 <= ny < 4:
if board[nx][ny] :
shark_move_possibility = True
remove.append((nx, ny))
else:
shark_move_possibility = False
remove = []
if shark_move_possibility:
if len(remove_list) < len(remove):
remove_list = remove
elif len(remove_list) == len(remove):
# 사전순 변환: 방향대로
#4
#5 복제마법 완료
fishes.append(coppied_fishes)
다시 실패.
히히
그리고 풀이 보고 따라 풀어보고 마쳤다.
실력 늘리고 다시 풀어보자.
'CodingTest > Baekjun Online Judge' 카테고리의 다른 글
[ BOJ / 파이썬 ] 10828 스택 (0) | 2023.01.27 |
---|---|
[ 백준 ] 1406 에디터 (0) | 2023.01.22 |
[ BOJ / 파이썬 ] 14503 로봇 청소기 (0) | 2022.10.10 |
[ BOJ / 파이썬 ] 14500 테트로미노 (0) | 2022.10.10 |
[ BOJ / 파이썬 ] 3190 뱀 (0) | 2022.10.09 |