[LeetCode] Form Smallest Number From Two Digit Arrays

아르당·3일 전

LeetCode

목록 보기
553/561
post-thumbnail

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

Problem

고유한 숫자로 된 두 배열 nums1과 nums2가 주어지고, 각 배열에서 최소 하나 이상 숫자를 포함하는 가장 작은 수를 반환해라.

Example

#1
Input: nums1 = [4, 1, 3], nums2 = [5, 7]
Output: 15
Explanation: 숫자 15는 nums1에서 숫자 1과 nums2에서 숫자 5를 포함한다.

#2
Input: nums1 = [3, 5, 2, 6], nums2 = [3, 1, 7]
Output: 3
Explanation: 숫자 3은 배열 둘 다 숫자 3이 존재한다.

Constraints

  • 1 <= nums1.length, nums2.length <= 9
  • 1 <= nums1[i], nums2[i] <= 9
  • 각 배열의 모든 숫자는 고유하다.

Solved

class Solution {
    public int minNumber(int[] nums1, int[] nums2) {
        boolean[] seen1 = new boolean[10];
        boolean[] seen2 = new boolean[10];
        int min1 = 10;
        int min2 = 10;

        for(int num : nums1){
            seen1[num] = true;
            min1 = num < min1 ? num : min1;
        }

        for(int num : nums2){
            seen2[num] = true;
            min2 = num < min2 ? num : min2;
        }

        for(int i = 1; i < 10; i++){
            if(seen1[i] && seen2[i]){
                return i;
            }
        }

        return min1 < min2 ? min1 * 10 + min2 : min2 * 10 + min1;
    }
}
profile
내 마음대로 코드 작성하는 세상

0개의 댓글