Skip to content

Commit f4eb476

Browse files
authored
Merge pull request DaleStudy#673 from YeomChaeeun/main
[YeomChaeeun] Week 1
2 parents 404d1f5 + 671a3f6 commit f4eb476

5 files changed

Lines changed: 157 additions & 0 deletions

File tree

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
function containsDuplicate(nums: number[]): boolean {
2+
3+
// ์ ‘๊ทผ (1) - ์‹œ๊ฐ„ ๋ณต์žก๋„๊ฐ€ ๋งค์šฐ ์ปค์„œ ์‹คํŒจ
4+
// const uniqueArr = nums.filter((item, index) => { return nums.indexOf(item) === index })
5+
// console.log(uniqueArr)
6+
//
7+
// return nums.length !== uniqueArr.length;
8+
9+
// ์ ‘๊ทผ (2) - ์–‘ ์˜†์˜ ๊ฐ’์„ ๋น„๊ต =============
10+
// if(nums.length === 1)
11+
// return false;
12+
//
13+
// // ์ •๋ ฌ
14+
// nums.sort()
15+
//
16+
// // ์–‘ ์˜†์˜ ๊ฐ’์„ ๋น„๊ต
17+
// for(let i = 0; i < nums.length; i++){
18+
// console.log(nums[i], nums[i+1])
19+
// if(nums[i] === nums[i+1]){
20+
// return true;
21+
// }
22+
// }
23+
// return false;
24+
25+
// ์ ‘๊ทผ (3) - obj๋ฅผ ์ด์šฉ ================
26+
let obj={}
27+
28+
for(let i = 0; i < nums.length; i++) {
29+
if(obj[nums[i]]) {
30+
return true;
31+
}
32+
obj[nums[i]] = 1;
33+
}
34+
return false;
35+
36+
};
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
/**
2+
* ํ•˜๋‚˜ ์ด์ƒ ๊ฑด๋„ˆ ๋›ด ๊ฐ’์„ ๋”ํ•œ ๊ฒƒ์ค‘ ๊ฐ€์žฅ ๋†’์€ ๊ฐ’์˜ ํ•ฉ์„ ๊ตฌํ•˜๊ธฐ
3+
* @param nums
4+
*/
5+
function rob(nums: number[]): number {
6+
7+
if(nums.length === 1) return nums[0];
8+
9+
// 0 + 2 ...
10+
// 1 + 3 ...
11+
// Max(์ธ๋ฑ์Šค 0๋ถ€ํ„ฐ ๋”ํ•œ ๊ฒƒ, ์ธ๋ฑ์Šค 1๋ถ€ํ„ฐ ๋”ํ•œ ๊ฒƒ)
12+
13+
// ์ ‘๊ทผ (1) - ์–‘ ์˜†์˜ ๊ฐ’์„ ์ œ์™ธํ•˜๊ณ  ํ™€์ˆ˜/์ง์ˆ˜ ์ธ๋ฑ์Šค ๊ฐ’๋“ค์„ ๋”ํ–ˆ์Œ
14+
// [2, 1, 1, 2] ์ผ ๋•Œ, ๋‹ต์ด 4๊ฐ€ ๋‚˜์™€์•ผ ํ•จ
15+
// let max = 0
16+
// let odd = 0
17+
// let even = 0
18+
// for(let i = 0; i < nums.length; i++) {
19+
// if(i % 2 == 0) {
20+
// console.log(nums[i], 'even >>>', even);
21+
// even += nums[i];
22+
// } else {
23+
// console.log(nums[i], 'odd >>>', odd);
24+
// odd += nums[i];
25+
// }
26+
// }
27+
// console.log(even, '===', odd);
28+
// max = Math.max(even, odd);
29+
30+
// ์ ‘๊ทผ (2) - max ๊ฐ’์„ ์ €์žฅํ•ด๋‘๊ณ  Math.max(ํ•˜๋‚˜ ์ด์ƒ ๊ฑด๋„ˆ๋›ด ๊ฐ’ + ํ˜„์žฌ ๊ฐ’ ๋”ํ•œ ๊ฒƒ, max) ๋ฅผ ๊ตฌํ•จ
31+
let prev = 0
32+
let max = 0
33+
let temp = 0
34+
for(let i = 0; i < nums.length; i++) {
35+
temp = max
36+
max = Math.max(prev + nums[i], max) // ์ด์ „์˜ ๊ฐ’๊ณผ ํ•˜๋‚˜ ์ด์ƒ ๊ฑด๋„ˆ๋›ฐ๊ณ  ๋”ํ•œ ๊ฐ’ ์ค‘ ์ตœ๋Œ€ ๊ฐ’์„ ๊ตฌํ•จ
37+
prev = temp
38+
39+
// console.log(temp, " - ", max, " - ", prev)
40+
};
41+
// console.log(max);
42+
return max;
43+
};
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
/**
2+
* ๊ฐ€์žฅ ๊ธด ์—ฐ์†์˜ ์‹œํ€€์Šค ๊ตฌํ•˜๊ธฐ
3+
* @param nums
4+
*/
5+
function longestConsecutive(nums: number[]): number {
6+
7+
// length ๊ฐ€ 0, 1 ์ธ ๊ฒฝ์šฐ
8+
if(nums.length < 2)
9+
return nums.length; // 0, 1
10+
11+
// ์ •๋ ฌ
12+
nums = nums.sort((a, b) => a - b)
13+
14+
// ์ ‘๊ทผ (1) ์ฒ˜์Œ ์—ฐ์†๋œ count๋งŒ ๋ฆฌํ„ดํ•จ =============
15+
// let count = 1
16+
// for(let i = 0; i < nums.length-1; i++) {
17+
// if(nums[i] === nums[i+1]) {
18+
// continue;
19+
// } else if(nums[i] - nums[i+1] === 1) {
20+
// count++;
21+
// } else {
22+
// break;
23+
// }
24+
// };
25+
// console.log(count);
26+
// return count;
27+
28+
// =========
29+
30+
let longest = 0;
31+
let current = 1;
32+
for(let i = 0; i < nums.length-1; i++) {
33+
if(nums[i] === nums[i - 1]) {
34+
continue;
35+
} else if(nums[i] + 1 === nums[i + 1] ) {
36+
current += 1;
37+
} else {
38+
longest = Math.max(current, longest);
39+
current = 1;
40+
}
41+
}
42+
43+
return longest;
44+
};
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
/**
2+
*
3+
* @param nums
4+
* @param k
5+
*/
6+
function topKFrequent(nums: number[], k: number): number[] {
7+
let obj = {}
8+
9+
for(const num of nums) {
10+
if(!obj[num])
11+
obj[num] = 0
12+
++obj[num]
13+
}
14+
15+
return Object.entries(obj)
16+
.sort((a, b) => Number(b[1]) - Number(a[1]))
17+
.slice(0, k)
18+
.map(entry => Number(entry[0]));
19+
};
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
/**
2+
* palindrom: ํšŒ๋ฌธ, ๊ฑฐ๊พธ๋กœ ์ฝ์–ด๋„ ์ œ๋Œ€๋กœ ์ฝ๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ๋ฌธ์žฅ
3+
* @param s
4+
*/
5+
function isPalindrome(s: string): boolean {
6+
let word = s.toLowerCase();
7+
const reg = /[^a-z0-9]/g; // removing all non-alphanumeric characters
8+
word = word.replace(reg, '');
9+
10+
for(let i = 0; i < word.length; i++) {
11+
if(word[i] !== word[word.length-i-1])
12+
return false;
13+
}
14+
return true;
15+
};

0 commit comments

Comments
ย (0)