Notice
Recent Posts
Recent Comments
Link
just inside
[백준] Bronze 1. 28702 - FizzBuzz python 본문
728x90
문제 링크
https://www.acmicpc.net/problem/28702
문제 설명
FizzBuzz 문제는 i=1,2,⋯𝑖=1,2,⋯ 에 대해 다음 규칙에 따라 문자열을 한 줄에 하나씩 출력하는 문제입니다.
- i𝑖가 33의 배수이면서 55의 배수이면 “FizzBuzz”를 출력합니다.
- i𝑖가 33의 배수이지만 55의 배수가 아니면 “Fizz”를 출력합니다.
- i𝑖가 33의 배수가 아니지만 55의 배수이면 “Buzz”를 출력합니다.
- i𝑖가 33의 배수도 아니고 55의 배수도 아닌 경우 i𝑖를 그대로 출력합니다.
FizzBuzz 문제에서 연속으로 출력된 세 개의 문자열이 주어집니다. 이때, 이 세 문자열 다음에 올 문자열은 무엇일까요?
입력
FizzBuzz 문제에서 연속으로 출력된 세 개의 문자열이 한 줄에 하나씩 주어집니다. 각 문자열의 길이는 88 이하입니다. 입력이 항상 FizzBuzz 문제에서 연속으로 출력된 세 개의 문자열에 대응됨이 보장됩니다.
출력
연속으로 출력된 세 개의 문자열 다음에 올 문자열을 출력하세요. 여러 문자열이 올 수 있는 경우, 아무거나 하나 출력하세요.
제출 코드
import sys
input = sys.stdin.readline
fizzbuzz = []
for _ in range(3):
fizzbuzz.append(input().rstrip())
for i in range(3):
word = fizzbuzz[i]
if word.isdigit():
result = int(word) + 3 - i
if result % 3 == 0 and result % 5 == 0:
print("FizzBuzz")
elif result % 3 == 0:
print("Fizz")
elif result % 5 == 0:
print("Buzz")
else:
print(result)
break
풀이
- 입력받은 세 개의 문자열 다음에 올 문자열이 무엇인지 출력해야 하는 문제이다.
- 3 또는 5의 배수에 대해서 Fizz, Buzz, FizzBuzz가 출력되어야 한다. 즉, 3개 연속으로 문자열이 오는 경우는 없다.
- 따라서 입력받은 문자열 중 숫자를 찾아 다음으로 이어질 숫자가 무엇인지 확인하고, 조건문을 통해 해당하는 값을 출력해준다.
- str.isdigit() 함수를 통해 입력받은 문자열이 숫자인지 확인한다.
- 숫자라면, 3개의 문자열 중 몇 번째인지 확인하여 이어질 숫자가 무엇인지 계산한다.
- 찾아낸 숫자에 대해 조건문으로 원하는 값을 출력하도록 한다.
알아둘 사항
- str.isdigit() 함수를 사용하면 문자열이 숫자로만 이루어져 있는지 확인할 수 있다.
728x90
'coding test > 구현' 카테고리의 다른 글
[백준] Silver 4. 11723 - 집합 python (0) | 2024.08.01 |
---|---|
[백준] Silver 4. 18110 - solved.ac python (0) | 2024.07.28 |
[백준] Bronze 1. 11050 - 이항 계수 1 python (0) | 2024.07.16 |
[백준] Bronze 1. 2869 - 달팽이는 올라가고 싶다 python (1) | 2024.07.16 |
[백준] Bronze 1. 2609 - 최대공약수와 최소공배수 python (0) | 2024.07.15 |