Skip to content

Commit 45589d7

Browse files
committed
feat(2nd): Upload valid-anagram solution
1 parent 1d40150 commit 45589d7

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

โ€Žvalid-anagram/mike2ox.tsโ€Ž

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,42 @@
1+
/**
2+
* Source: https://leetcode.com/problems/valid-anagram/
3+
* ์š”์ : ๋‘ ๋ฌธ์ž์—ด์ด ์• ๋„ˆ๊ทธ๋žจ์ธ์ง€ ํ™•์ธํ•˜๋Š” ํ•จ์ˆ˜
4+
* ํ’€์ด ์‹œ๊ฐ„: 5๋ถ„
5+
* ํ’€์ด๋ฐฉ๋ฒ•: ๋ฌธ์ž์—ด์„ ์ •๋ ฌํ•˜์—ฌ ๋น„๊ตํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ๋ฌธ์ž ๋นˆ๋„์ˆ˜๋ฅผ ์นด์šดํŒ…ํ•˜๋Š” ๋ฐฉ๋ฒ•
6+
* ์‹œ๊ฐ„๋ณต์žก๋„: O(n log n) - ์ •๋ ฌ์ด ์ง€๋ฐฐ์ ์ธ ์—ฐ์‚ฐ
7+
* ๊ณต๊ฐ„๋ณต์žก๋„: O(n) - ๋ฌธ์ž์—ด์„ ๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•œ ๊ณต๊ฐ„
8+
*/
19
function isAnagram(s: string, t: string): boolean {
210
if (s.length !== t.length) return false;
311
return s.split("").sort().join() === t.split("").sort().join();
412
}
13+
14+
/**
15+
* Solution2: ์ž๋ฃŒ๊ตฌ์กฐ Map์„ ์‚ฌ์šฉํ•ด์„œ ๋ฌธ์ž ๋นˆ๋„๋ฅผ ๊ณ„์‚ฐํ•ด ๋‘ ๋ฌธ์ž์—ด์ด ์• ๋„ˆ๊ทธ๋žจ์ธ์ง€ ํ™•์ธํ•˜๊ธฐ
16+
* ์‹œ๊ฐ„๋ณต์žก๋„: O(n) - ๋‹จ์ผ ์ˆœํšŒ๋กœ ํ•ด๊ฒฐ
17+
* ๊ณต๊ฐ„๋ณต์žก๋„: O(1) - ์ตœ๋Œ€ 26๊ฐœ ์•ŒํŒŒ๋ฒณ์— ๋Œ€ํ•œ ๊ณ ์ • ํฌ๊ธฐ ๋งต ์‚ฌ์šฉ
18+
*/
19+
function isAnagram2(s: string, t: string): boolean {
20+
// ๊ธธ์ด๊ฐ€ ๋‹ค๋ฅด๋ฉด ์• ๋„ˆ๊ทธ๋žจ์ด ๋  ์ˆ˜ ์—†์Œ
21+
if (s.length !== t.length) return false;
22+
23+
// ๊ฐ ๋ฌธ์ž์˜ ์ถœํ˜„ ๋นˆ๋„๋ฅผ ๊ธฐ๋กํ•  ๋ชฉ์ ์œผ๋กœ Map์„ ์‚ฌ์šฉ
24+
const charCount = new Map<string, number>();
25+
26+
// ์ฒซ ๋ฒˆ์งธ ๋ฌธ์ž์—ด์˜ ๊ฐ ๋ฌธ์ž ๋นˆ๋„ ์ฆ๊ฐ€
27+
for (const char of s) {
28+
charCount.set(char, (charCount.get(char) || 0) + 1);
29+
}
30+
31+
// ๋‘ ๋ฒˆ์งธ ๋ฌธ์ž์—ด์˜ ๊ฐ ๋ฌธ์ž ๋นˆ๋„ ๊ฐ์†Œ
32+
for (const char of t) {
33+
const count = charCount.get(char);
34+
35+
// ๋ฌธ์ž๊ฐ€ ์—†๊ฑฐ๋‚˜ ๋นˆ๋„๊ฐ€ 0์ด๋ฉด ์• ๋„ˆ๊ทธ๋žจ์ด ์•„๋‹˜
36+
if (count === undefined || count === 0) return false;
37+
38+
charCount.set(char, count - 1);
39+
}
40+
41+
return true;
42+
}

0 commit comments

Comments
ย (0)