링크 programmers.co.kr/learn/courses/30/lessons/12985#
규칙을 찾아보니 대진표의 짝수 숫자 //2 가 다음 대진표에 나가는거라서
a가 홀수일 경우에만 1을 더해주게 했는데, 다시 생각해보니 짝수든 홀수든 상관없이 1을 더하면 다음 대진표 숫자가 된다((1+1)//2=1, (2+1)//2=1 로 서로 같음).
그렇게 코드를 짰으면 더 간결했을 듯
def solution(n,a,b):
answer = 0
while a!=b:
if a%2:
a += 1
if b%2:
b += 1
a, b = a//2, b//2
answer += 1
return answer
고쳐봤는데 답도 잘 나온다
def solution(n,a,b):
answer = 0
while a!=b:
a, b = (a+1)//2, (b+1)//2
answer += 1
return answer
규칙을 제대로 찾은다음에 문제를 푸는게 참 중요한거같다
'Algorithm > Python' 카테고리의 다른 글
[파이썬/프로그래머스]배달/다익스트라/우선순위큐/가지치기!!!!!!!!! (0) | 2021.04.03 |
---|---|
[파이썬/프로그래머스]점프와 순간이동 (0) | 2021.04.03 |
[파이썬/프로그래머스]쿼드압축 후 개수 세기 (0) | 2021.04.02 |
[파이썬/프로그래머스]짝지어 제거하기 스택사용 (0) | 2021.04.01 |
[파이썬/백준 19236]청소년 상어 (0) | 2021.04.01 |