-
[LeetCode] 412. Fizz Buzz 풀이 (python)STUDY/CS 2023. 12. 27. 15:06반응형
문제 설명
n이라는 숫자가 주어진다. 그리고 우리는 문자열 배열을 결과값으로 리턴해야 한다.
여기서 1부터 n까지의 숫자 중에서 3,5로 나뉘는 숫자는 리스트의 i번째 요소에 "FizzBuzz"라는 문자열을 넣고, 3으로 나뉘는 숫자는 "Fizz", 5로 나뉘는 숫자는 "Buzz"를 넣는다.
class Solution: def fizzBuzz(self, n: int) -> List[str]: result = [] for i in range(1,n+1): if i % 3 == 0 and i % 5 == 0: result.append("FizzBuzz") elif i % 3 == 0: result.append("Fizz") elif i % 5 == 0: result.append("Buzz") else: result.append(str(i)) return result
문제 해설
result 라는 문자열 배열을 생성한 뒤, range함수를 이용해 1부터 n까지 for루프를 반복한다.
이때 주의해야 할 점, range 함수의 범위는 range(n, m) 일 때 n 이상 m 미만이라는 것. 나도 항상 까먹는다.
그리고 if, elif, else를 이용해 조건을 확인한다.
append를 이용해 result 리스트에 요소 추가하고
마지막으로 어떤 조건에도 해당하지 않는 숫자들은 리스트에 추가하기 전에 str로 바꿔줘야 하기 때문에 str(i)를 이용한다.
결과&느낀 점
오랜만에 파이썬을 이용해 문제를 풀어보려고 하니 엄청나게 생소했다.
그리고 이 방법보다 더 좋은 방법이 분명히 있을 것 같다.
메모리 사용량만 봐도 알 수 있음.
다른 사람들의 코드를 찾아봐야겠다.
반응형'STUDY > CS' 카테고리의 다른 글
웹 백엔드 프로젝트 회고 kpt | python, django 사용 (0) 2024.02.12 [백준] 24416. 알고리즘 수업 - 피보나치 수 1 (파이썬 python, pypy3) (1) 2024.01.07 [백준] 17202. 핸드폰 번호 궁합 (파이썬 python) (2) 2023.12.30 [LeetCode] 1672. Richest Customer Wealth 풀이 (java) (1) 2023.12.27 LeetCode 시작 (0) 2023.12.27