알고리즘/백준
[백준] 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
반응형