처리조건
풀이
1,2,3,4,5,6,7,8 참가자가 있으면 다음경기 때는 1,2중 아무나, 뭐 2가 내려오고 3,4중 4가 5,6중6이 이렇게 내려와서 다음경기를 진행하게 된다. 아래처럼 2씩 나누게 된 몫을 확인해보자 맨 아래 4와 8이 만나고 여기서 8은 7이나 상관없게 된다. 처리조건 아래를 잘 살펴보면 된다.
- N : 21 이상 220 이하인 자연수 (2의 지수 승으로 주어지므로 부전승은 발생하지 않습니다.)
그렇다면 A,B를 받아서 2로 나누고 나눈수를 Math.ceil로 반올림하여 정수로 나타내고 while문을 돌려 a,b를 계속 바꿔주면서 이 둘이 일치할때 까지 돌린다.
코드는 굉장히 간단하지만 난이도2인 이유는 조건을 잘 생각해서 어떠한 규칙을 잘 찾아야하는 것 같다.
function solution(n,a,b)
{
var answer = 0;
while(a!==b){
a= Math.ceil(a/2)
b=Math.ceil(b/2)
answer++
}
return answer
}
'일반 학습 > 코딩 테스트' 카테고리의 다른 글
[프로그래머스] 위장 (0) | 2022.03.22 |
---|---|
[프로그래머스] 괄호 회전하기 (0) | 2022.03.22 |
[프로그래머스] 게임 맵 최단거리 (0) | 2022.03.19 |
[프로그래머스] 조이스틱 (0) | 2022.03.18 |
[프로그래머스] "123" 같은 문자열을 순열로 만들기 (0) | 2022.03.17 |
댓글