[プログラマー]予想されるインターホン(Python)
4700 ワード
質問リンク-https://programmers.co.kr/learn/courses/30/lessons/12985
aとbを偶数面2で割る奇数面2の商+1 aがbより小さい場合、以下の手順により奇数となるため、aは奇数となり、bとの差が1である場合、break(bがaより小さい場合も同様) となる.
(1,2) (3,4) (5,6) (7,8)... このように対決を行い,aとbに1を2で割ると奇数/偶数を問わず解くことができる.
私の答え
def solution(n,a,b):
cnt = 1
while True:
if a%2!=0 and b-a == 1: # a가 더 작을 때
break
elif b%2!=0 and a-b == 1: # b가 더 작을 때
break
else:
if a % 2 == 0:
a//=2
else:
a = a//2 + 1
if b % 2 == 0:
b//=2
else:
b = b//2+1
cnt += 1
return cnt
他人の解答
def solution(n,a,b):
answer = 0
while a != b:
answer+=1
a, b = (a+1)//2, (b+1)//2
return answer
Reference
この問題について([プログラマー]予想されるインターホン(Python)), 我々は、より多くの情報をここで見つけました https://velog.io/@js2_11/프로그래머스-예상-대진표pythonテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol