본문 바로가기
PS/BOJ

백준 16666 자바 - Guest Student (BOJ 16666 JAVA)

by Nahwasa 2021. 10. 18.

문제 : https://www.acmicpc.net/problem/16666

코드 : https://github.com/NaHwaSa/BOJ_BaekjunOnlineJudge/blob/master/16600/BOJ_16666.java

 

  어렵진 않고 그냥 수학적으로 생각해서 구현하면 되는거긴한데.. 코드보면 알겠지만 이래놓고 실버라니 숭악하다.

 

0. 일단 매 TC 마다 입력을 받아두고(14line), 1로 시작하는 위치에서 모두 시작해본다. (15~16line)

 

1. 거기서 부터 일단 k가 0이될 때 까지 돌려본다.(19~22line)

-> 이 때 k가 0이 된다면 그걸로 해당 회차는 끝 (23line)

-> 그렇지 않다면 다음 로직으로

 

2. 다음으로 중간 부분은 수학적으로 나눗셈을 활용해서 날려버릴 수 있다. (27~29line)

-> 이 때 날려버리면서 0이 된 경우라면, 뒷부분의 0들은 필요가 없는 경우이므로 다시 찾아서 제거한다. (30~35line)

 

3. 이제 남은건 나머지 남은 k에 대해 직접 찾아가며 다시 돌린다. (36~39line)

 

4. '0'번에 해당하는 모든 위치 중 최소값을 찾는다. (40line)

 

로직은 이렇다. 결국 수학적으로 틀리지 않을만한 로직을 단순하게 세워두고 그걸 구현한거긴한데, 앵간한 골드 플래문제보다 구현하기 귀찮았다.

댓글