시험 감독 - 리팩토링
주어진 예제 케이스들 하나하나 다 통과시키도록해서 몫과 나머지 연산을 이용해서 어찌어찌 구현해서 정답은 맞았지만, 시간, 공간적으로 비효율적이라 리팩토링이 필수적이다.
아래코드에서는 각 시험장에 필요한 총 감독수를 계산한답시고 N 크기의 정수형 배열을 추가적으로 생성하고, i-for문이 3개나 존재한다. => 입력 배열1개, i-for문 1개로 리팩토링한다!⭐️⭐️⭐️⭐️⭐️ 정답 저장하는 변수 한개로 반복문 거듭할 수록 필요한 감독수 더해감으로써 총 필요 감독 수 정답 저장가능하다.
첫번째 for문에서 needSubSupervisor배열 생성해서 1로 초기화한 부 =>변수 ans 하나로 정답 저장 =>ans = N으로 초기화하고, 이 변수로 반복문 내에서 증가해나가면 된다.⭐️⭐️⭐️⭐️⭐️ 문제 조건에 따라 각 시험장마다 총감독은 오직 1명씩만 들어가있어야하기 때문에 필요한 전체 감독도 N개의 시험장에 총감독이 1명씩 들어가있으면 N명부터 시작한다! =>첫번째, 세번째 i-for문 소거✅
핵심로직인 두번째 i-for문 : 더 이상고칠 것이 없어보이지만 gap%C ==0 이든 아니든 동일하게 gap/C 를 더하는 것을 알 수 있다. 똑같은 코드가 2번이나 반복된다. 그러면 그냥 디폴트로 정답 변수 ans += gap/C로 하고, (gap%c !=0)인 경우에만 ans++ 로 ans를 1 더 증가시켜주면 된다!
Last updated