[LeetCode] Keep Multiplying Found Values by Two

아르당·2026년 8월 11일

LeetCode

목록 보기
459/561
post-thumbnail

문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음

Problem

정수 배열 nums가 주어진다. 또한 정수 original이 주어지고, nums에서 찾아야하는 첫 번째 숫자이다.
다음 단계를 수행한다.

  1. nums에서 original을 찾았다면, 2를 곱해라(original = 2 * original).
  2. 그렇지 않다면 과정을 멈춰라.
  3. 숫자를 찾을 수 있는 동안 새로운 숫자로 이 과정을 반복해라.

최종 original 값을 반환해라.

Example

#1
Input: nums = [5, 3, 6, 1, 12], original = 3
Output: 24
Explanation:

  • nums에서 3을 찾았다. 3에 2를 곱해서 6이 된다.
  • nums에서 6을 찾았다. 6에 2를 곱해서 12가 된다.
  • nums에서 12를 찾았다. 12에 2를 곱해서 24가 된다.
  • nums에서 24를 찾을 수 없다. 24를 반환한다.

#2
Input: nums = [2, 7, 9], original = 4
Output: 4
Explanation:

  • 4는 nums에서 찾을 수 없다. 4를 반환한다.

Constraints

  • 1 <= nums.length <= 1000
  • 1 <= nums[i], original <= 1000

Solved

class Solution {
    public int findFinalValue(int[] nums, int original) {
        Set<Integer> hs = new HashSet<>();

        for(int num : nums){
            hs.add(num);
        }

        while(hs.contains(original)){
            original = 2 * original;
        }

        return original;
    }
}
profile
내 마음대로 코드 작성하는 세상

0개의 댓글