[Leetcode/TS] 1. Two Sum

2024. 12. 17. 20:41· 코딩테스트

문제

https://leetcode.com/problems/two-sum/description/

 


1. 그냥 풀어보자

function twoSum(nums: number[], target: number): number[] {
    for (let i = 0; i < nums.length; i++) {
        for (let j = i + 1; j < nums.length; j++) {
            if (nums[i] + nums[j] == target) {
                return [i, j]
            }
        }
    }
};

 

for 문으로 순회하면서 모든 요소들을 다 찾아보고 있으니까 당연히 최선의 방법이 아니다.

그런데 무슨 방법이 있는지 모르니까 일단 이렇게 했다!

얘처럼 모든 경우의 수를 구하는 방법을 부르트 포스라고 한다.

2중 for 문으로 돌기 때문에 시간복잡도가 O(n^2)이다.

 

 

 

 

 

 

다른 방법은 Solutions 를 봤다

2. HashMap 사용

function twoSum(nums: number[], target: number): number[] {
    const hash = new Map<number, number>

    for (let i = 0; i < nums.length; i++) {

        if(hash.has(target - nums[i])) {
            return [hash.get(target - nums[i]), i]
        }

        hash.set(nums[i], i)
    }
};

 

리스트에 내가 원하는 값이 있는지 찾는게 중점이라고 생각하고

처음부터 순회를 하되 map 에 이 조건을 만족하는 값이 있다면 바로 반환, 없다면 인덱스와 함께 값을 넣어준다.

1번씩만 돌아가도 값을 찾아내므로 시간복잡도는 O(n)이다.



 

Testcase

twoSum([3, 2, 4], 6);

// { hash: Map(1) { 3 => 0 } }
// { hash: Map(2) { 3 => 0, 2 => 1 } }

 

 

 

 

 

 


너무 오랜만에 해서 바보가 된 기분이다.

 

'코딩테스트' 카테고리의 다른 글

[Leetcode/TS] 9. Palindrome Number  (1) 2024.12.19
[Leetcode/TS] 2. Add Tow Number  (0) 2024.12.18
프로그래머스 | 레벨0 | Kotlin  (0) 2024.02.02
프로그래머스 | 레벨0 | Kotlin  (0) 2024.02.01
프로그래머스 | 삼총사 | Kotlin  (0) 2024.01.25
'코딩테스트' 카테고리의 다른 글
  • [Leetcode/TS] 9. Palindrome Number
  • [Leetcode/TS] 2. Add Tow Number
  • 프로그래머스 | 레벨0 | Kotlin
  • 프로그래머스 | 레벨0 | Kotlin
다시은
다시은
🔥
다시은
재은로그
다시은
전체
오늘
어제
  • 분류 전체보기 (127)
    • 코딩테스트 (40)
    • Language (2)
      • JAVA (2)
      • Kotlin (0)
      • TypeScript (0)
    • SQL (1)
    • 인프라 (1)
    • 왕초보일지 (77)
    • 회고 (4)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • mysql
  • sql
  • SQL문법
  • Kotlin
  • 스프레드시트
  • 문자열변환
  • googleapis

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
다시은
[Leetcode/TS] 1. Two Sum
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.