백준 알고리즘 문제풀이 1057(토너먼트) with 파이썬


문제소개

  • 참가자수 N과 김지민과 임한수의 번호가 주어진다.
  • 토너먼트 형식으로 진행되고 김지민과 임한수는 항상 이긴다.
  • 김지민과 임한수가 몇라운드에서 대결을 할지 출력

문제 풀이 코드

m,start,end = map(int,input().split())
cnt=0
while start!=end:
  start -= start //2 
  end -= end //2
  cnt+=1
print(cnt)

코드 설명

  • 김지민과 임한수의 번호를 토너먼트 형식이기 때문에 절반씩 나눈수를 뺀다
  • 김지민과 임한수의 번호가 같아질때 라운드수를 저장한 cnt를 출력한다.

느낀점

  • 풀지 못한 문제이다. 너무 어렵게 생각했다
  • 배열에 개수에 맞게 숫자를 저장하고 길이가 짝수일때는 뒤에 두개씩 pop()하고 두 개가 모두 김지민과 임한수의 번호일때 라운드수를 출력하려고 했다. 길이가 홀수일때는 뒤에서 하나만 pop()하고 저장하였다.
  • 손풀이로 먼저 하면서 규칙 및 알고리즘을 생각해보도록 하자

좋은 웹페이지 즐겨찾기