728x90
문제
FizzBuzz 문제는 i = 1, 2, 3...에 대해 다음 규칙에 따라 문자열을 한 줄에 하나씩 출력하는 문제입니다.
i가 3의 배수이면서 5의 배수이면 “FizzBuzz”를 출력합니다.
i가 3의 배수이지만 5의 배수가 아니면 “Fizz”를 출력합니다.
i가 3의 배수가 아니지만 5의 배수이면 “Buzz”를 출력합니다.
i가 3의 배수도 아니고 5의 배수도 아닌 경우 i를 그대로 출력합니다.
FizzBuzz 문제에서 연속으로 출력된 세 개의 문자열이 주어집니다.
이때, 이 세 문자열 다음에 올 문자열은 무엇일까요?
https://www.acmicpc.net/problem/28702
입력
FizzBuzz 문제에서 연속으로 출력된 세 개의 문자열이 한 줄에 하나씩 주어집니다.
각 문자열의 길이는 8 이하입니다.
입력이 항상 FizzBuzz 문제에서 연속으로 출력된 세 개의 문자열에 대응됨이 보장됩니다.
출력
연속으로 출력된 세 개의 문자열 다음에 올 문자열을 출력하세요.
여러 문자열이 올 수 있는 경우, 아무거나 하나 출력하세요.
예제
# input
Fizz
Buzz
11
# output
Fizz
# input
980803
980804
FizzBuzz
# output
980806
문제 풀이
import sys
input = sys.stdin.readeline
# 입력 받기
strings = [input().strip() for _ in range(3)]
# 가장 마지막 숫자 찾기
for i in range(2, -1, -1):
# 인덱스를 기준으로 세 문자열 다음에 올 숫자 찾기
if strings[i].isdigit():
answer = int(strings[i]) + (3-i)
break
# 조건에 맞추어 출력
if answer % 15 == 0:
print('FizzBuzz')
elif answer % 3 == 0:
print('Fizz')
elif answer % 5 == 0:
print('Buzz')
else:
print(answer)
파이썬을 독학하시는 분들에게 도움이 되길 바라며,
혹 더 좋은 방법이 있거나 오류가 있다면 편하게 말씀 부탁드립니다.
728x90