LeetCode는 프로그래밍 문제를 풀며 코딩 실력을 향상할 수 있는 온라인 플랫폼입니다. 다양한 알고리즘 및 데이터 구조 문제를 제공하며, 면접 대비에 유용합니다. 해당 문제는, LeetCode Problems에서 볼 수 있는 난이도 '쉬움 (Easy)' 단계인 "Fizz Buzz" 문제입니다.
--> https://leetcode.com/problems/fizz-buzz/description/
문제 :
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 (as a string) if none of the above conditions are true.
Example 1:
Input : n = 3
Output : ["1","2","Fizz"]
Example 2 :
Input : n = 5
Output : ["1","2","Fizz","4","Buzz"]
Example 3 :
Input : n = 15
Output : ["1","2","Fizz","4","Buzz","Fizz","7","8","Fizz","Buzz","11","Fizz","13","14","FizzBuzz"]
Constraints : 1 <= n <= 10^4
문제 : 주어진 정수 n에 대해, 1부터 n까지 각 숫자를 문자열로 변환하여 조건에 따라 "Fizz", "Buzz", "FizzBuzz" 또는 해당 숫자를 문자열로 변환한 값을 포함하는 배열을 반환하세요. 숫자가 3과 5로 나누어지면 "FizzBuzz", 3으로만 나누어지면 "Fizz", 5로만 나누어지면 "Buzz"를 사용합니다.
class Solution {
public List<String> fizzBuzz(int n) {
List<String> fb = new ArrayList<>();
for (int i = 1; i <= n; i++) {
if (i%3 == 0 && i%5 == 0) {
fb.add("FizzBuzz");
} else if (i%3 == 0 && i%5 != 0) {
fb.add("Fizz");
} else if (i%3 != 0 && i%5 == 0) {
fb.add("Buzz");
} else {
fb.add(Integer.toString(i));
}
}
return fb;
}
}
제 코드는 문제가 요구하는 그대로를 코드로 직역한거라고 보시면 되겠습니다.
1부터 n까지의 숫자를 순회하면서 각 숫자에 대해 조건에 따라 "Fizz", "Buzz", "FizzBuzz", 또는 숫자 자체를 리스트에 추가하고, 최종적으로 그 리스트를 반환합니다. 이 이상 설명을 드리기가 조금 어렵겠네요. 혹여나 더더욱 자세한 설명이 필요하시면, 댓글 달아주십시오! 완전 코드 line by line으로 쪼개서 설명드리겠습니다.
시간 복잡도는 O(n)입니다.
'LeetCode' 카테고리의 다른 글
[LeetCode] - 217. Contains Duplicate (3) | 2024.07.22 |
---|---|
[LeetCode] - 283. Move Zeroes (1) | 2024.07.22 |
[LeetCode] - 709. To Lower Case (0) | 2024.07.22 |
[LeetCode] - 2235. Add Two Integers (0) | 2024.07.22 |
[LeetCode] - 977. Squares of a Sorted Array (0) | 2024.07.22 |