Skip to content

Commit ea5ed1f

Browse files
committed
sadie100: two sum solution ์ˆ˜์ •
1 parent 6629a0e commit ea5ed1f

1 file changed

Lines changed: 10 additions & 17 deletions

File tree

โ€Žtwo-sum/sadie100.tsโ€Ž

Lines changed: 10 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,24 @@
11
/*
22
ํ’€์ด
3-
nums๋ฅผ ๊ฐ’๊ณผ index๊ฐ€ ์žˆ๋Š” ๊ฐ์ฒด ๋ฐฐ์—ด newNums๋กœ ์žฌ์ •์˜ํ•œ๋‹ค
4-
newNums๋ฅผ ๊ฐ’ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๊ณ  ๋‘ ํฌ์ธํ„ฐ start, end๋ฅผ ๋‘”๋‹ค
5-
nums[start] + nums[end]๊ฐ€ target๋ณด๋‹ค ์ž‘์œผ๋ฉด start+1ํ•˜๊ณ , target๋ณด๋‹ค ํฌ๋ฉด end-1ํ•œ๋‹ค. ๊ฐ™์œผ๋ฉด nums[start]๊ณผ nums[end]์˜ ์˜ค๋ฆฌ์ง„ index๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค.
6-
๋งŒ์•ฝ start>=end๊ฐ€ ๋˜๋ฉด ๋นˆ ๋ฐฐ์—ด์„ ๋ฆฌํ„ดํ•œ๋‹ค
3+
ํ•ด์‹œ๋งต์„ ์ด์šฉํ•ด ํ˜„์žฌ ๊ฐ’์˜ ๋ณด์ˆ˜(target - num)๊ฐ€ ์ด๋ฏธ ๋“ฑ์žฅํ–ˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.
4+
75
86
์‹œ๊ฐ„๋ณต์žก๋„
9-
O(nLogN) - ์ •๋ ฌ. ํฌ์ธํ„ฐ ์ˆœํšŒ๋Š” O(N)์ด๋ฏ€๋กœ ์ตœ์ข…์ ์œผ๋กœ O(nLogN)
7+
O(N) - nums ์ˆœํšŒ
108
119
๊ณต๊ฐ„๋ณต์žก๋„
12-
O(N) : newNums ๋ฐฐ์—ด
10+
O(N) - numObj ์ƒ์„ฑ
1311
*/
1412

1513
function twoSum(nums: number[], target: number): number[] {
16-
const newNums = nums.map((value, idx) => ({ value, idx }))
17-
const sortedNums = newNums.sort((a, b) => a.value - b.value)
18-
let start = 0
19-
let end = nums.length - 1
14+
const numObj: { [key: number]: number } = {}
2015

21-
while (start < end) {
22-
const total = sortedNums[start].value + sortedNums[end].value
23-
if (total === target) {
24-
return [sortedNums[start].idx, sortedNums[end].idx]
25-
} else if (total > target) {
26-
end -= 1
16+
for (let i = 0; i < nums.length; i++) {
17+
const num = nums[i]
18+
if (target - num in numObj) {
19+
return [i, numObj[target - num]]
2720
} else {
28-
start += 1
21+
numObj[num] = i
2922
}
3023
}
3124

0 commit comments

Comments
ย (0)