홍우진의 개발 일기장

[백준] 28702번: FizzBuzz / 파이썬 본문

알고리즘/백준

[백준] 28702번: FizzBuzz / 파이썬

홍우진 2024. 12. 4. 19:31
728x90
반응형

문제 링크


https://www.acmicpc.net/problem/28702

 

 

 

풀이 코드


for i in range(3,0,-1): # 3, 2, 1 순서로 숫자가 들어간다.
    a = input()
    if a not in ['FizzBuzz','Fizz','Buzz']: # 입력값중에 Fizz, Buzz, FizzBuzz 가 없으면 (입력값이 숫자면)
        dap = int(a)+i  # 답 = 그 수 + 앞으로 남은 수
        break

if dap % 15 == 0:   # 3과 5의 배수
    print('FizzBuzz')
elif dap % 3 == 0:  # 3의 배수
    print('Fizz')
elif dap % 5 == 0:  # 5의 배수
    print('Buzz')
else:
    print(dap)

코드 해석


가장 중요한 포인트는

입력을 받으면 세개 중 하나 이상은 무조건 숫자가 나온다는것이다.

Fizz, Buzz, FizzBuzz 가 세개가 연속으로 나올 수는 없다.

 

이 점을 이용하여

받은 입력값에 있는 숫자가 몇 번째 순서로 입력된 값인지를 확인하여 입력 후에 나올 숫자 dap을  예측한다.

그 후  dap이 숫자, Fizz, Buzz, FizzBuzz 중 어떤 조건인지 파악하여 출력한다.

728x90
반응형
Comments