[LeetCode] 1. Two Sum, Easy
·
CodingTest/LeetCode
1. 문제정수 배열 nums와 정수 target이 주어질 때, 요소 2개의 합이 target이 되는 두 인덱스 배열을 반환하라.오직 1개만 만족하는 쌍이 존재한다.2. 해결function twoSum(nums: number[], target: number): number[] { const map = new Map(); for(let i = 0; i 탐색하면서 target에서 뺀 값을 맵핑하기 위한 map을 구성.target에서 뺀 값이 map에 존재하면, 해당 인덱스 정보를 활용해 0이 되는지 확인.
[LeetCode] 202. Happy Number, Easy
·
CodingTest/LeetCode
1. 문제정수 n이 주어질 때 해당 정수가 happy number인지 판단하라.각 자리수의 제곱 후 더한다.더한 결과가 1이 될 때 까지 반복한다.무한 반복되면 해당 수는 happy number가 아니다.2. 해결function isHappy(n: number): boolean { const set = new Set(); let sum:number = n; while(sum !== 1) { let newSum = 0; for(const num of String(sum)) { newSum += Math.pow(Number(num),2); } if(set.has(newSum)) return fa..
[LeetCode] 349. Intersection of Two Arrays, Easy
·
CodingTest/LeetCode
1. 문제정수 배열 nums1, nums2가 주어질 때, 두 배열이 공통적으로 가지는 요소를 담은 배열을 반환하라.2. 해결function intersection(nums1: number[], nums2: number[]): number[] { const set = new Set(nums1); for(const num of set) { if(!nums2.includes(num)) set.delete(num); } return Array.from(set);};한 배열을 Set으로 담아 중복을 없애주고, 탐색하면서 다른 배열에 포함되지 않은 값은 삭제해준다.
[LeetCode] 136. Single Number, Easy
·
CodingTest/LeetCode
1. 문제정수 배열 nums가 주어질 때, 하나의 정수는 오직 1개 들어있으며 그 외는 2개 씩 들어 있다고 할때 1개만 들어있는 정수를 반환하라.2. 해결function singleNumber(nums: number[]): number { const set = new Set(); for(let i = 0; iSet을 이용해서 특정 요소가 없으면 넣어주고 있으면 삭제한다.1번 등장하는 정수를 제외하고 나머지는 2번 씩 등장하므로 추가 -> 삭제 될 수 밖에 없다.Set에 남은 1개가 정답.
[LeetCode] 217. Contains Duplicate, Easy
·
CodingTest/LeetCode
1. 문제정수 배열 nums가 주어질 때, 동일한 값이 2번 이상 나타나면 true를 반환하고, 그렇지 않으면 false를 반환하라.2. 해결function containsDuplicate(nums: number[]): boolean { const set = new Set(); for(let i=0; i중복 여부를 판단할 때 Set을 사용하면 간편하다.
[LeetCode] 706. Design HashMap, Easy
·
CodingTest/LeetCode
1. 문제내장 라이브러리를 사용하지 않고 요구사항에 맞는 HashTable을 구현하라.2. 해결class MyHashMap { map:{} constructor() { this.map = {}; } put(key: number, value: number): void { this.map[key] = value; } get(key: number): number { return this.map[key] === undefined ? -1 : this.map[key]; } remove(key: number): void { delete this.map[key] }}/** * Your MyHashMap object wi..
[LeetCode] 705. Design HashSet, Easy
·
CodingTest/LeetCode
1. 문제내장 라이브러리를 사용하지  않고, 각 함수를 가지는 HashSet 클래스를 정의하라.2. 해결class MyHashSet { set:boolean[] constructor() { this.set = new Array(1_000_001).fill(false); } add(key: number): void { this.set[key] = true; } remove(key: number): void { this.set[key] = false; } contains(key: number): boolean { return this.set[key] }}/** * Your MyHashSet object will..
[LeetCode] 112. Path Sum, Easy
·
CodingTest/LeetCode
1. 문제이진 트리와 targetSum이 주어질 때, 리프노드까지의 경로 중 targetSum과 합이 같아지는 경로가 존재하는 지 판별하라.2. 해결/** * Definition for a binary tree node. * class TreeNode { * val: number * left: TreeNode | null * right: TreeNode | null * constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) { * this.val = (val===undefined ? 0 : val) * this.left = (left===undefined ? null :..
[LeetCode] 101. Symmetric Tree, Easy
·
CodingTest/LeetCode
1. 문제이진 트리가 주어질 때, 루트 노드를 기준으로 양쪽 서브 트리가 대칭인 지 판별하라.2. 해결/** * Definition for a binary tree node. * class TreeNode { * val: number * left: TreeNode | null * right: TreeNode | null * constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) { * this.val = (val===undefined ? 0 : val) * this.left = (left===undefined ? null : left) * this.righ..
[LeetCode] 104. Maximum Depth of Binary Tree, Easy
·
CodingTest/LeetCode
1. 문제이진트리가 주어질 때, 최대 깊이를 반환하라.2. 해결/** * Definition for a binary tree node. * class TreeNode { * val: number * left: TreeNode | null * right: TreeNode | null * constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) { * this.val = (val===undefined ? 0 : val) * this.left = (left===undefined ? null : left) * this.right = (right===undefined..