Coding Test (코딩 테스트)
[브론즈1]백준 28702번(FizzBuzz) - 코테공부 39일차(2025.03.05)
Meta주형
2025. 3. 5. 19:35
반응형



문제유형
문자열
풀이 방법 도출 과정
1. 주어진 문제는 특정 규칙을 기반으로 문자열을 예측하는 문제이다.
2. 문자열이 연속적으로 주어지며, 그 깅리은 최대 8 이하이다. 특정 패턴이 전용되며 이를 기반으로 다음에 올 문자열을 예측해야한다.
2. 이 문제는 게임 "369"와 유사하지만 다른 규칙을 따른다.
3. 적용되는 규칮은 이와 같다. 숫자가 3의 배수이면서 5의 배수이면 "FizzBuzz"를 출력한다. 3의 배수이기만 하면 "Fizz" 5의 배수이기만 하면 "Buzz"를 출력한다. 둘다 해당하지 않는다면 숫자 그대로 출력한다.
4. 이를 해결하기 위해 문자열이 연속되다가 숫자가 등장하는 경우 해당 숫자를 활용하여 이후 문자열을 결정하는 방식을 적용한다.
5. 특정 숫자가 주어지면, 이를 기반으로 문자열을 생성하는 접근법을 도입하여 문제를 해결해보도록 하겠다.
시간 복잡도
시간 복잡도는 O(3)이다. 즉 O(1)이다.
코드 및 간단설명
for 문을 사용해서 간단하게 표현해보았다.
for i in range(3, 0, -1):
x = input()
if x not in ['Fizz', 'Buzz', 'FizzBuzz']:
n = int(x) + i
print('Fizz'*(n % 3 == 0) + 'Buzz'*(n % 5 == 0) or n)
break
이보다 더 좋은 풀이는 없기에 다른 풀이는 적지 않도록 하겠음
반응형