Skip to content

Commit 87fc3f9

Browse files
committed
refactor: 린트오류 수정
1 parent ce3d49d commit 87fc3f9

File tree

2 files changed

+50
-57
lines changed

2 files changed

+50
-57
lines changed

climbing-stairs/youngduck.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ var climbStairs = function (n) {
2424
* @param {number} n
2525
* @return {number}
2626
*/
27-
var climbStairs = function (n) {
27+
var climbStairsOptimized = function (n) {
2828
const dp = Array(n).fill(0);
2929
dp[1] = 1;
3030
dp[2] = 2;

valid-anagram/youngduck.js

Lines changed: 49 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -4,63 +4,56 @@
44
* @return {boolean}
55
*/
66
var isAnagram = function (s, t) {
7-
const mapS = new Map();
8-
const mapT = new Map();
9-
10-
[...s].map((item) => {
11-
if (mapS.has(item)) {
12-
const itemCount = mapS.get(item);
13-
mapS.set(item, itemCount + 1);
14-
} else {
15-
mapS.set(item, 1);
16-
}
17-
});
18-
19-
[...t].map((item) => {
20-
if (mapT.has(item)) {
21-
const itemCount = mapT.get(item);
22-
mapT.set(item, itemCount + 1);
23-
} else {
24-
mapT.set(item, 1);
25-
}
26-
});
27-
28-
// NOTE - t가 s의 anagram이라는 뜻을 갯수가 같지않아도 된다고 이해했으나 anagram정의는 s구성원을 모자람,남김없이 t를만들 수 있는 상태
29-
if (mapS.size !== mapT.size) {
30-
return false;
7+
const mapS = new Map();
8+
const mapT = new Map();
9+
10+
[...s].map((item) => {
11+
if (mapS.has(item)) {
12+
const itemCount = mapS.get(item);
13+
mapS.set(item, itemCount + 1);
14+
} else {
15+
mapS.set(item, 1);
16+
}
17+
});
18+
19+
[...t].map((item) => {
20+
if (mapT.has(item)) {
21+
const itemCount = mapT.get(item);
22+
mapT.set(item, itemCount + 1);
23+
} else {
24+
mapT.set(item, 1);
3125
}
32-
33-
for (const [key, value] of mapS) {
34-
if (mapT.get(key) !== value) {
35-
return false;
36-
}
26+
});
27+
28+
// NOTE - t가 s의 anagram이라는 뜻을 갯수가 같지않아도 된다고 이해했으나 anagram정의는 s구성원을 모자람,남김없이 t를만들 수 있는 상태
29+
if (mapS.size !== mapT.size) {
30+
return false;
31+
}
32+
33+
for (const [key, value] of mapS) {
34+
if (mapT.get(key) !== value) {
35+
return false;
3736
}
38-
39-
return true;
40-
};
37+
}
38+
39+
return true;
40+
};
4141

42-
// 시간복잡도: O(n)
43-
// - 문자열 s와 t를 각각 한 번씩 순회: O(n) + O(n) = O(2n) = O(n)
44-
// - Map 비교를 위한 순회: O(k), 여기서 k는 고유 문자 개수
45-
// - 따라서 전체 시간복잡도는 O(n)
46-
// 공간복잡도: O(1)
47-
// - 두 개의 Map 객체 생성: mapS와 mapT
48-
// - 각 Map은 최대 k개의 고유 문자를 저장 (k는 고유 문자 개수)
49-
// - 소문자 영문자만 사용하므로 k ≤ 26 (a-z)
50-
// - 따라서 전체 공간복잡도는 O(1) (상수 시간)
42+
// 시간복잡도: O(n)
43+
// - 문자열 s와 t를 각각 한 번씩 순회: O(n) + O(n) = O(2n) = O(n)
44+
// - Map 비교를 위한 순회: O(k), 여기서 k는 고유 문자 개수
45+
// - 따라서 전체 시간복잡도는 O(n)
46+
// 공간복잡도: O(1)
47+
// - 두 개의 Map 객체 생성: mapS와 mapT
48+
// - 각 Map은 최대 k개의 고유 문자를 저장 (k는 고유 문자 개수)
49+
// - 소문자 영문자만 사용하므로 k ≤ 26 (a-z)
50+
// - 따라서 전체 공간복잡도는 O(1) (상수 시간)
5151

52-
// follow up: 유니코드 테스트 케이스. 큰 의미는 없음
53-
console.log(isAnagram("😀😀", "😀😀😀"));
54-
// false
55-
console.log(isAnagram("한글글", "글한글"));
56-
// true
57-
console.log(isAnagram("café", "éfac"));
58-
// true
59-
console.log(isAnagram("Hello世界", "世界Hello"));
60-
// true
61-
console.log(isAnagram("안녕 하세요", "하세요 안녕"));
62-
// true
63-
console.log(isAnagram("Café", "éfac"));
64-
// false
65-
console.log(isAnagram("Café", "Éfac"));
66-
// false
52+
// follow up: 유니코드 테스트 케이스. 큰 의미는 없음
53+
// console.log(isAnagram("😀😀", "😀😀😀")); // false
54+
// console.log(isAnagram("한글글", "글한글")); // true
55+
// console.log(isAnagram("café", "éfac")); // true
56+
// console.log(isAnagram("Hello世界", "世界Hello")); // true
57+
// console.log(isAnagram("안녕 하세요", "하세요 안녕")); // true
58+
// console.log(isAnagram("Café", "éfac")); // false
59+
// console.log(isAnagram("Café", "Éfac")); // false

0 commit comments

Comments
 (0)