본문 바로가기

old/Algorithm Solving

LeetCode 2413. Smallest Even Multiple 자바 문제 풀이

반응형

문제

Smallest Even Multiple - LeetCode

문제 해결 방법

  • multiple of 2라는 뜻은 숫자가 짝수여야 한다는 뜻이다.
  • multiple of n라는 뜻은 숫자가 n의 배수여야 한다는 뜻이다.
  • 이 문제는 n의 배수중에 가장 작은 짝수를 찾는 문제이다.
  • 처음에는 n을 반복해서 증가시키고, 그중 짝수면 리턴하는 알고리즘을 짰었다. 하지만 그러고 깨달았다. 두번째 n의 배수는 언제나 짝수일수밖에 없다.
  • 그러므로 가장 효율적인 알고리즘은 아래와 같다
    • n이 짝수인지 확인한다.
    • n이 짝수라면 n을 리턴한다.
    • n이 짝수가 아니라면 다음배수는 언제나 짝수이다.
    • 그러므로 n*2를 리턴한다.

Github Link

https://github.com/eunhanlee/LeetCode_2413_SmallestEvenMultiple_Solution.git

시간복잡도: O(1), 공간복잡도: O(1)

public class Solution {
    /**
     * 주어진 숫자의 가장 작은 짝수의 배수를 찾습니다.
     *
     * @param n 가장 작은 짝수의 배수를 찾을 숫자입니다.
     * @return 주어진 숫자의 가장 작은 짝수의 배수입니다.
     */
    public int smallestEvenMultiple(int n) {
        if (n % 2 == 0) {
            return n;
        } else {
            return n * 2;
        }
    }
}
반응형