LeetCode 공부 - Intersection of Two Arrays

LeetCode(349) - Intersection of Two Arrays 문제 두 정수 배열 nums1과 nums2가 주어진다. 두 배열에서 공통된 값을 가지는 수의 배열을 반환하라. 반환되는 배열의 순서는 상관이 없다. 공통된 값은 중복으로 반환하면 안된다. 입력 Input: nums1 = [4,9,5], nums2 = [9,4,9,8,4] 출력 Output: [9,4] 풀이 nums1를 순회하면서 map에 삽입한다. nums2를 순회하면서 map에 이미 값이 있는지 확인한다. 값이 있다면 중복된 값이므로 반환될 배열에 삽입한다. 배열은 중복으로 삽입하면 안되므로 이미 값이 존재한다면 무시한다....

January 14, 2023 · 1 min · 144 words · Me

LeetCode 공부 - Missing Nuimber

LeetCode(268) - Missing Number 문제 0 ~ n까지의 수를 가진 배열 nums가 주어진다. nums는 n개의 고유한 수를 가진다. nums에서 누락된 유일한 수 를 반환하라. 입력 Input: nums = [9,6,4,2,3,5,7,0,1] 출력 Output: 8 설명: nums의 크기는 9이며, 이는 9개의 고유한 수를 가진다. 고유한 수는 [0,9] 사이의 값을 가질 수 있다. 8은 이 배열에서 빠져있는 고유한 수이다. Constraints: n == nums.length 1 <= n <= 104 0 <= nums[i] <= n All the numbers of nums are unique....

January 14, 2023 · 1 min · 197 words · Me

Leetcode 공부 - Valid Anagram

LeetCode(242) - Valid Anagram 문제 문자열 s와 t가 주어진다. 두 문자열이 Anagram인지 판단하여 Anagram이면 true를, 아니라면 false를 반환하라. 입력 Input: s = "anagram", t = "nagaram" 출력 Output: true 풀이 s와 t를 정렬하고, 문자열만큼의 길이를 순회하면서 해당 index에 s와 t가 다르다면 false를 반환한다. 문자열 순회가 끝나면 true를 반환한다. 코드 #include<iostream> #include<algorithm> using namespace std; bool isAnagram(string s, string t) { if (s.size() == 0 || t.size() == 0) return false; if (s....

January 14, 2023 · 2 min · 229 words · Me

Leetcode 공부 - Container Duplicate

LeetCode(217) - Contains Duplicate 문제 정수 배열 nums가 주어진다. 중복된 정수가 배열에 있다면 true를 반환하고 중복이 없다면 false를 반환하라 입력 Input: nums = [1,1,1,3,3,4,3,2,4,2] 출력 Output: true 풀이 배열을 순회하면서 각 값들을 set에 넣는다. set에 현재 배열의 값과 동일한 값이 있다면 중복이므로 true를 반환한다. 배열을 모두 순회했다면 중복이 없으므로 false를 반환한다. 코드 bool containsDuplicate(vector<int>& nums) { unordered_set<int> uset; for(int num : nums) { if(uset.count(num) > 0) { return true; } uset....

January 13, 2023 · 1 min · 75 words · Me

Leetcode 공부 - Majority Element

LeetCode(169) - Majority Element 문제 n의 길이를 가지는 정수형 배열 nums가 주어진다. nums에 저장된 정수 중 가장 많은 빈도의 정수를 반환하라. 가장 많은 빈도를 갖는 정수는 2/n개 이상이다. 입력 nums = [2,2,1,1,1,2,2] 출력 Output: 2 풀이 key는 정수 값을, value는 정수의 빈도를 나타내는 unordered_map을 사용한다. nums를 순회하면서, 해당 정수의 key를 조회, value의 값을 +1 하여 빈도를 나타낸다. 빈도가 2/n이상이라면 해당 정수가 가장 많은 빈도의 정수이므로, 해당 정수를 반환한다. 코드 class Solution { public: int majorityElement(vector<int>& nums) { unordered_map<int, int> umap; int maxSize = nums....

January 10, 2023 · 1 min · 108 words · Me