본문 바로가기
알고리즘

Leet Code 412

by irerin07 2023. 7. 25.
728x90
public List<String> fizzBuzz(int n) {
  if (n==0) {
    return Collections.emptyList();
  }

  List<String> answer = new ArrayList<>();

  for (int i = 1; i <=n; i++) {
    if (i%3 == 0 && i%5 == 0) {
      answer.add("FizzBuzz");
    } else if (i%3 == 0) {
      answer.add("Fizz");
    } else if (i%5 ==0) {
      answer.add("Buzz");
    } else {
      answer.add(String.valueOf(i));
    }

  }

  return answer;
}

모듈러를 사용하여 각각 3으로 나누는 경우, 5로 나누는 경우 그리고 3과 5로 나눌경우 0인 케이스를 나눠 풀었다.

스위치 케이스 사용해서 풀기도 가능하다.

 

다른 솔루션을 보니 크게 다르진 않은데 좀 요상한 솔루션이 있다.

 

class Solution {
  public List<String> fizzBuzz(int n) {
    return new AbstractList<>() {
      @Override
      public String get(int index) {
        return switch (++index % 15) {
          case 0 -> "FizzBuzz";
          case 3, 6, 9, 12 -> "Fizz";
          case 5, 10 -> "Buzz";
          default -> String.valueOf(index);
        };
      }

      @Override
      public int size() {
        return n;
      }
    };
  }
}

이거 뭐임?

진짜 뭐임?

728x90

'알고리즘' 카테고리의 다른 글

[LeetCode] 100. Same Tree  (0) 2023.12.04
array partition  (0) 2023.09.30
Leet Code 1672  (0) 2023.07.25
Leet Code 1480  (0) 2023.07.25
[백준] N과 M (4) [자바/Java]  (0) 2020.07.19