- Date : 2021.09.12(일)
- Time : 20분
- Given an integer n, return a string array answer (1-indexed) where:
- answer[i] == "FizzBuzz" if i is divisible by 3 and 5.
- answer[i] == "Fizz" if i is divisible by 3.
- answer[i] == "Buzz" if i is divisible by 5.
- answer[i] == i if non of the above conditions are true.
- 1 <= n <= 10^4
- Input: n = 5
- Output: ["1","2","Fizz","4","Buzz"]
def fizzBuzz(self, n: int) -> List[str]:
answer = []
for i in range(1,n+1):
strAnswer = ""
if i%3 == 0: strAnswer += "Fizz"
if i%5 == 0: strAnswer += "Buzz"
if strAnswer == "": strAnswer = str(i)
answer.append(strAnswer)
return answer
: 이 문제는 처음에는 if-else 문으로 풀었다가 수정한 문제이다. 그 이유는 3,5로 다 나눠지면 "FizzBuzz", 3으로만 나눠진다면 "Fizz", 5로만 나눠진다면 "Buzz" 이렇게 공통점이 있었기 때문이다. 그래서 for문을 돌면서 string에 적립해서 저장하는 방식으로 변경해보았다. 그리고 문자열이 비어있다는 것은 3,5에서 걸리지 않았다는 뜻이므로 i 자체를 문자열로 저장해주면 된다!