반응형
https://school.programmers.co.kr/learn/courses/30/lessons/12985
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이 (1차 시도)
어떻게 풀지에 대한 고민으로 시간을 엄청 썼다...
아래와 같이 생각하면 엄청 쉽게 풀 수 있는거 같다.
1 2 3 4 5 6 7 8 (height = 1)
1 2 3 4 (height = 2)
1 2 (height = 3)
1 (height = 4)
하지만 아직 에러가 있다.............
# n = 참가자 수
# a = 주인공 번호
# b = 라이벌 번호
# 1 2 3 4 5 6 7 8 (height = 1)
# 1 2 3 4 (height = 2)
# 1 2 (height = 3)
# 1 (height = 4)
def oddeven(n):
if n % 2 == 0:
return n
else:
n = n + 1
return n
def solution(n,a,b):
answer = 0
height = 1 # height of graph (round)
while True:
height += 1
n /= 2
a = oddeven(a) / 2
b = oddeven(b) / 2
print(a, b)
if abs(a - b) == 1.0 :
break
if n == 1:
break
# 짝수 홀수
answer = height
return answer
풀이 (2차 시도)
생각이 어렵고 코드로 만드는건 쉬운거 같다....
# n = 참가자 수
# a = 주인공 번호
# b = 라이벌 번호
# 1 2 3 4 5 6 7 8 (height = 1)
# 1 2 3 4 (height = 2)
# 1 2 (height = 3)
# 1 (height = 4)
def oddeven(n):
if n % 2 == 0:
return n
else:
n = n + 1
return n
def solution(n,a,b):
answer = 0
height = 1 # height of graph (round)
while True:
n /= 2
a = oddeven(a) / 2
b = oddeven(b) / 2
print(a, b)
# 1라운드에서부터 만날경우
if b - a == 0:
break
height += 1
# 같은 층일 때
if oddeven(a) == oddeven(b):
break
if n == 1:
break
# 짝수 홀수
answer = height
return answer
반응형
'코딩 테스트 > Programmers' 카테고리의 다른 글
[Python] [Level 2] H-Index (0) | 2022.10.29 |
---|---|
[Python] [Level 2] 점프와 순간 이동 (0) | 2022.10.28 |
[Python] [Level 2] N개의 최소공배수 (0) | 2022.10.22 |
[Python] [Level 2] 구명보트 (min과 max를 정하기) (0) | 2022.10.21 |
[Python] [Level 2] 짝지어 제거하기 (0) | 2022.10.16 |