알고리즘

<Programmers> 예상 대진표

koyuchang 2020. 5. 6. 11:29

라운드를 이겨서 올라갈 때마다 새로운 라운드 수를 적용하는 방법으로는, 홀수면 몫에 +1, 짝수면 몫 그대로를 출력하기로 하였다. 그리고 a, b의 차이가 1이 아닌 이상 다음 라운드로 올라가도록 설정하였다.

 

[초기 코드]

실패 코드

 

하지만, a=1, b=2 같은 경우는 해결이 되지만, a=2, b=3 인 경우는 비록 차이는 1이지만 다음 라운드로 올라가야 하기때문에 에러가 발생한다.

이 문제를 해결 하는 방법은 a와 b 중 큰 수가 짝수면 같은 라운드에 속하고, 아니면 서로 다른 라운드 이므로 다음 라운드로 진행하도록 코딩하였다.

 

Ex)
a=1 b=2 인 경우,
1라운드에서 끝

 

a=2 b=3 인 경우,
b가 홀수 이므로 다음 라운드로 진행.

 

 

(처음엔 diff!=1 이랑 Math.max(a,b)%2!=0 를 AND 연산하여 실패하였지만, OR연산으로 하니 성공하였다.)

 

완성 코드

실행시간이 평균 0.8초이다.