본문 바로가기
PS/BOJ

[자바] 백준 17114 - 하이퍼 토마토 (java)

by Nahwasa 2022. 12. 7.

 문제 : boj17114


 

필요 알고리즘 개념

  • BFS
    • BFS긴 하다. BFS긴 한게 맞다.
  • 구현
    • 코딩은 체력이다.

※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다.

 


 

풀이

1. 우선 BFS는 기본적으로 문제없이 다룬다는 가정하에 풀 수 있다. BFS를 잘 모른다면 BFS 알고리즘 (너비 우선 탐색) - 배열 BFS, 그래프 BFS 글을 참고하자.

 

2. 기본 BFS를 알고, 2차원에서의 BFS만 해봤다면 3차원에서의 BFS를 우선 풀어보자. (백준 7569 - 토마토)

 

3. 그럼 이 문제는 단순히 2차원 -> 3차원 하던걸 11차원으로 짜면 된다!! 3차원 BFS를 이해하고 풀었다면 11차원이라고 달라질건 없다. 다만 체력이 필요하고, 이게 이렇게 푸는게 맞나 싶고, 이걸 디버깅 어떻게 하지? 라는 생각이 들겠지만 그게 맞다ㅋㅋㅋ.

ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

 

 

그래도 구데기컵의 하이퍼 시리즈 중에 하이퍼 토마토가 제일 만만한 것 같다. 이하는 출제자의 광기가 느껴지는 하이퍼 시리즈의 '하이퍼 배열 돌리기(21298번)' 문제 지문 중 일부이다.

 

 

  3차원 BFS까지 했다면 11차원으로의 확장은 구현이 까다로울 뿐이고, 구데기컵 문제이기도 하므로 따로 코드는 첨부하지 않는다. 일단 너무 길다(237줄ㅋㅋ).


 

코드 : N/A

댓글