문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음
고유한 숫자로 된 두 배열 nums1과 nums2가 주어지고, 각 배열에서 최소 하나 이상 숫자를 포함하는 가장 작은 수를 반환해라.
#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이 존재한다.
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;
}
}