-
[programmers/Swift] 예상 대진표Archive/Questions 2022. 5. 25. 16:23728x90
programmers.co.kr - 코딩테스트연습 - Lv.2 - 2017 팁스타운 - 예상 대진표
Constraints :
- N : 21 이상 220 이하인 자연수 (2의 지수 승으로 주어지므로 부전승은 발생하지 않습니다.)
- A, B : N 이하인 자연수 (단, A ≠ B 입니다.)
// // Created by Yongwoo Marco on 2022/05/25. // Copyright © 2022 Yongwoo Marco Kim. All rights reserved. // func solution(_ n:Int, _ a:Int, _ b:Int) -> Int { var A = a, B = b, round = 0 while A != B { A = (A%2 == 1 ? (A+1)/2 : A/2 ) B = (B%2 == 1 ? (B+1)/2 : B/2 ) round += 1 } return round } print(solution(8, 4, 7)) // 3 print(solution(8, 1, 2)) // 1 print(solution(Int( pow(2.0, 19) ), 1, Int( pow(2.0, 19) ))) // 1
How I tried this :
1번 2번 팀이 대결하면 승자는 1번 팀이 된다.따라서 홀수라면 +1/2, 짝수라면 /2를 하면 다음 위치를 알 수 있다.
결과적으로 두 팀이 대결한다면 승리 후 같은 위치에 가게된다.
A == B 인 경우는 두 팀이 대결했다는 의미가 된다.
문제에 관한 모든 저작권 : https://programmers.co.kr/
728x90'Archive > Questions' 카테고리의 다른 글
[programmers/Swift] 방문 길이 (0) 2022.05.30 [programmers/Swift] 짝지어 제거하기 (0) 2022.05.26 [programmers/Swift] 가장 큰 정사각형 찾기 (0) 2022.05.24 [programmers/Swift] 올바른 괄호 (0) 2022.05.23 [programmers/Swift] 교점에 별 만들기 (0) 2022.05.22