[Python/구현] BOJ-23291 어항정리
*풀이참고 링크 들어가셔서 보시면 됩니다.
물고기가 가장 많이 들어있는 어항과 가장 적게 들어있는 어항의 물고기 수 차이가 K 이하가 되려면 어항을 몇 번 정리해야하는지 출력하면 된다. 어렵다 어려워,,,,,여태껏 푼 문제중에 제일 어렵다. 시험장에서 만났다면 정말 뇌절 각이다. 지금 만난걸 다행이라 생각하자 ^_^!
아래 접근 순서대로 차분히 짜보자.
[접근]
- 최소값에 1 더하기
- 일렬로 정렬된 어항을 굴려서 쌓기 - roll_1
- 인접된 어항에 대해 물고기수 차이를 5로 나눈 몫 d를 구함 - fish_arrange
- 몫이 0보다 크면 두 어항중 물고기 수가 많은 곳에 있는 물고기 d 마리를 적은곳에 있는 곳으로 보냄 - fish_arrange
- 일렬로 어항을 푼다. - unflod
- 다시 쌓는 작업 진행 후 물고기 재정렬 - roll_2
- 몫이 0보다 크면 두 어항중 물고기 수가 많은 곳에 있는 물고기 d 마리를 적은곳에 있는 곳으로 보냄 - fish_arrange
- 일렬로 어항을 푼다. - unflod
1 | |
회고
굴리는 로직이 전혀 머리속에 떠오르지 않아서 애먹었다.
답을 보지 않고서는 풀지 못하는 수준이였다.