안녕하세요! 오늘은 프로그래머스의 예상 대진표 문제를 풀어보겠습니다!
이 문제는 tree의 공통 부모 노드를 찾는 문제입니다!
대진표가 완전 이진트리여서 동일한 부모노드가 나올때까지 ÷2 로 나누어주시면 됩니다!
그러기 위해서는 각각의 Index를 이진트리에 맞춰주어야하는데요.
n이 2^x 이기 때문에 n - 1 + a, n - 1 + b로 인덱스를 바꾸어주시면 됩니다!
import Foundation
func solution(_ n:Int, _ a:Int, _ b:Int) -> Int
{
var answer = 0
var a = n - 1 + a
var b = n - 1 + b
while a != b {
answer += 1
a = a/2
b = b/2
}
return answer
}
오늘은 여기까지이며, 궁금한 점이 있으시면 댓글로 남겨주세요!
좋은 하루 되세요!
'Algorithm Problem Solving > Programmers' 카테고리의 다른 글
[프로그래머스] 월간 코드 챌린지 시즌2 괄호 회전하기 with Swift (0) | 2022.01.20 |
---|---|
[프로그래머스] 2019 KAKAO BLIND RECRUITMENT 후보키 with Swift (0) | 2022.01.15 |
[프로그래머스] 탐욕법(Greedy) 조이스틱 with Swift (0) | 2022.01.11 |
[프로그래머스] 소수 찾기 with Swift (0) | 2022.01.10 |
[프로그래머스] 정렬 가장 큰 수 with Swift (모든 반례) (1) | 2022.01.07 |