반응형
프로그래머스: 예상 대진표
문제풀러가기
https://programmers.co.kr/learn/courses/30/lessons/12985?language=python3
문제 분석
1. N이 2의 제곱과 관련되어 있기 때문에, 2와 관련된 규칙이 있을것이라 생각했습니다.
2. 규칙을 찾기위해 대진표에서 2를 나눈후, 몫과 나머지를 비교해 보았습니다.
찾은 규칙은 아래와 같습니다.
무슨 규칙인지 발견하셨나요??
문제에서, 1<->2 번끼리 겨뤘을때 이기면 1이 되고,
3<->4번 끼리 겨뤄서 이겼을때는 2가되고,
5<->6번 끼리 겨뤄서 이겼을때는 3이 된다고 했습니다.
위 그림과 같이 몫과 나머지를 더해주면, 이겼을때, 그 다음 얻는 번호를 알 수 있습니다.
그러므로, 같은 번호를 얻기 전까지 while문을 돌려주면 됩니다.
코드
def solution(n,a,b):
cnt=0
while True:
a= (a//2)+(a%2)
b= (b//2)+(b%2)
cnt+=1
if a==b:
break
return cnt
코드를 조금 더 깔끔하게 정리하면,
코드 (위와 같은 코드)
def solution(n,a,b):
cnt=0
while a!=b:
a,b= (a//2)+(a%2), (b//2)+(b%2)
cnt+=1
return cnt
<잡담>
프로그래머스 Lv2를 풀때, 어려운 문제도 많고, 구현하기 귀찮은 문제도 많아 현타가 왔었습니다.
그런데 이번 문제는 쉬어가는 문제라서 잠깐이나마 힐링을 했네요... ㅠ_ㅠ
사실 실력이 늘었는지 안늘었는지도 잘 모르겠지만, 늘고 있는거겠죠...! ㅠㅠ
여기까지 오신분들, 프로그래머스 Lv5에 도달하는 날이 올때까지 같이 화이팅해요 ;)
반응형
'코딩테스트 > 코딩테스트 문제' 카테고리의 다른 글
코딩테스트 준비 - 프로그래머스: 튜플/2019 카카오 개발자 겨울 인턴십 풀이 (파이썬) (0) | 2021.07.02 |
---|---|
코딩테스트 준비 - 프로그래머스:메뉴 리뉴얼 풀이/Counter,combinations (파이썬) (0) | 2021.07.02 |
코딩테스트 준비 - 프로그래머스: 괄호 변환 풀이/재귀함수 문제 (파이썬) (2) | 2021.07.01 |
코딩테스트 준비 - 프로그래머스: 행렬 테두리 회전하기 풀이(파이썬) (2) | 2021.06.30 |
코딩테스트 준비 - 프로그래머스:뉴스 클러스터링 풀이/isalpha() (파이썬) (0) | 2021.06.29 |
댓글