Skip to content

Commit 8995ef6

Browse files
authored
Merge pull request #2434 from robinyoon-dev/main
[robinyoon-dev] WEEK 03 Solutions
2 parents a00972b + 95cc89b commit 8995ef6

3 files changed

Lines changed: 107 additions & 0 deletions

File tree

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
/**
2+
* @param {number[]} candidates
3+
* @param {number} target
4+
* @return {number[][]}
5+
*/
6+
var combinationSum = function (candidates, target) {
7+
8+
const result = [];
9+
10+
function dfs(remainTarget, currentArray, currentIndex) {
11+
12+
if (remainTarget < 0) {
13+
return;
14+
}
15+
16+
if (remainTarget == 0) {
17+
result.push([...currentArray]);
18+
return;
19+
}
20+
21+
// λ°±νŠΈλž˜ν‚Ή 탐색
22+
for (let i = currentIndex; i < candidates.length; i++) {
23+
currentArray.push(candidates[i]);
24+
25+
dfs(remainTarget - candidates[i], currentArray, i);
26+
27+
currentArray.pop();
28+
}
29+
30+
}
31+
32+
dfs(target, [], 0);
33+
34+
return result;
35+
36+
};
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
/**
2+
* @param {number} n
3+
* @return {number}
4+
*/
5+
var hammingWeight = function (n) {
6+
let count = 0;
7+
let tempN = n;
8+
while (tempN != 0) {
9+
if (tempN & 1) {
10+
// λΉ„νŠΈ 마슀크(& 1): μ•žμ˜ λΉ„νŠΈλ“€μ€ λͺ¨λ‘ 0으둜 λ¬΄μ‹œν•˜κ³ , 맨 끝자리 λΉ„νŠΈλ§Œ μΆ”μΆœν•˜μ—¬ 검사.
11+
count++;
12+
}
13+
tempN = tempN >>> 1;
14+
// >>: λΆ€ν˜Έ μœ μ§€ 우츑 이동
15+
// >>>: λΆ€ν˜Έ 상관없이 0으둜 μ±„μš°λŠ” 우츑 이동
16+
}
17+
18+
return count;
19+
};
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
/**
2+
* @param {string} s
3+
* @return {boolean}
4+
*/
5+
var isPalindrome = function (s) {
6+
7+
//NOTE: λ‹€μŒμ—λŠ” 투 포인터 λ°©μ‹μœΌλ‘œ λΆˆμ–΄λ³΄κ² μŠ΅λ‹ˆλ‹€...
8+
9+
//0. μ—£μ§€μΌ€μ΄μŠ€ λŒ€λΉ„: 빈칸인 경우.
10+
if (s.trim() === '') {
11+
return true;
12+
}
13+
14+
//1. sλ₯Ό array둜 λ³€ν™˜
15+
const sArray = Array.from(s);
16+
17+
// μ•ŒνŒŒλ²³λ§Œ λ‚¨κΈ°λŠ” μž‘μ—…
18+
// (Alphanumeric characters include letters and numbers.)
19+
const aAscii = 'a'.charCodeAt(0);
20+
const zAscii = 'z'.charCodeAt(0);
21+
const aUpperAscii = 'A'.charCodeAt(0);
22+
const zUpperAscii = 'Z'.charCodeAt(0);
23+
const zeroAscii = '0'.charCodeAt(0);
24+
const nineAscii = '9'.charCodeAt(0);
25+
26+
const filteredArray = [];
27+
for (let char of sArray) {
28+
let charAscii = char.charCodeAt(0);
29+
30+
let isCharacter = (charAscii >= aAscii && charAscii <= zAscii) || (charAscii >= aUpperAscii && charAscii <= zUpperAscii) || (charAscii >= zeroAscii && charAscii <= nineAscii);
31+
32+
if (isCharacter) {
33+
filteredArray.push(char);
34+
}
35+
}
36+
37+
// λŒ€λ¬Έμž -> μ†Œλ¬Έμžλ‘œ λ³€κ²½ν•˜λŠ” μž‘μ—…
38+
const lowerArray = [];
39+
for (let char of filteredArray) {
40+
lowerArray.push(char.toLowerCase());
41+
}
42+
43+
// reverse 해도 λ˜‘κ°™μ€μ§€ ν™•μΈν•˜λŠ” μž‘μ—…
44+
const reversedArray = [...lowerArray].reverse();
45+
46+
const originalString = lowerArray.join();
47+
const reversedString = reversedArray.join();
48+
49+
return originalString === reversedString;
50+
51+
};
52+

0 commit comments

Comments
Β (0)