๐keywords๐
๋ฌธ์ 41 - ์์ํ๋ณ / ๋ฐ๋ณต๋ฌธ
๋ฌธ์ 42 - ์์ผ ๊ตฌํ๊ธฐ / Date, getDay()
๋ฌธ์ 43 - 10์ง์๋ฅผ 2์ง์๋ก
๋ฌธ์ 44 - ๊ฐ ์ซ์์ ํฉ
๋ฌธ์ 45 - getTime() / 1๋ ์ ms๋ก
๋ฌธ์ 46 - ๊ฐ ์๋ฆฌ์์ ํฉ
๋ฌธ์ 47 - Set ์๋ฃ
๋ฌธ์ 48 - ๋์๋ฌธ์ ๋ฐ๊ฟ์ ์ถ๋ ฅํ๊ธฐ
๋ฌธ์ 49 - ์ต๋๊ฐ ๊ตฌํ๊ธฐ / sort()
๋ฌธ์ 50 - ๋ฒ๋ธ์ ๋ ฌ
์ซ์๊ฐ ์ฃผ์ด์ง๋ฉด ์์์ธ์ง ์๋์ง ํ๋ณํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํด์ฃผ์ธ์.
์์์ด๋ฉด YES๋ก, ์์๊ฐ ์๋๋ฉด NO๋ก ์ถ๋ ฅํด์ฃผ์ธ์.
(์์ : 1๊ณผ ์๊ธฐ ์์ ๋ง์ผ๋ก ๋๋์ด๋จ์ด์ง๋ 1๋ณด๋ค ํฐ ์์ ์ ์)
๐๋ก์ง๐
์๊ธฐ ์์ ๋ณด๋ค ์์ ์(1๋ณด๋คํผ)๋ค์ ๊ณ์ ๋๋๊ฐ์ ๋๋จธ์ง๊ฐ ์์๊ฒฝ์ฐ, ์์์.
๋๋จธ์ง๊ฐ 0์ด ๋๋ค๋ฉด ์์๊ฐ ์๋๋ค
๐์ ์๋ํ์ด๐
const num = 6
function isPrime(n) {
for(let i = 2; n>i; i++){
if(n % i === 0){
console.log('์์๊ฐ ์๋๋๋ค')
return false; //ํจ์ ์ข
๋ฃ
}
}
//n์ด 1์ผ ๊ฒฝ์ฐ๋ฅผ ์ํด
if(n>1){
console.log('์์์
๋๋ค')
} else{
console.log('์์๊ฐ ์๋๋๋ค')}
}
isPrime(num)
2020๋
1์ 1์ผ์ ์์์ผ์
๋๋ค. 2020๋
a์ b์ผ์ ๋ฌด์จ ์์ผ์ผ๊น์?
๋ ์ a, b๋ฅผ ์
๋ ฅ๋ฐ์ 2020๋
a์ b์ผ์ด ๋ฌด์จ ์์ผ์ธ์ง ๋ฆฌํดํ๋ ํจ์ solution์ ์์ฑํ์ธ์.
์์ผ์ ์ด๋ฆ์ ์ผ์์ผ๋ถํฐ ํ ์์ผ๊น์ง ๊ฐ๊ฐ SUN, MON, TUE, WED, THU, FRI, SAT ์
๋๋ค.
์๋ฅผ ๋ค์ด a = 5, b = 24๋ผ๋ฉด 5์ 24์ผ์ ์ผ์์ผ์ด๋ฏ๋ก ๋ฌธ์์ด "SUN"๋ฅผ ๋ฐํํ์ธ์.
์ ํ ์กฐ๊ฑด
2020๋
์ ์ค๋
์
๋๋ค.
2020๋
a์ b์ผ์ ์ค์ ๋ก ์๋ ๋ ์
๋๋ค.
(13์ 26์ผ์ด๋ 2์ 45์ผ ๊ฐ์ ๋ ์ง๋ ์ฃผ์ด์ง์ง ์์ต๋๋ค.)
๐๋๋ง์ ๋ก์ง๐
Date๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๋ฉด๋๋ค
var christmas = new Date('2020-12-25');
console.log(christmas);
==> Fri Dec 25 2020 09:00:00 GMT+0900 (ํ๊ตญ ํ์ค์)
์ด๋ฅผ ๋ฌธ์์ด๋ก ๋ฐ๊พผ๋ค, slice(0,2) ํด์ค ํ, toUppercase() ํ๋ฉด ๋
const a = 5;
const b = 24;
โ2020๋
5์ 24์ผ์ ๋ฌด์จ ์์ผ์ผ๊น์โ
function calcul(a,b){
const ๋ ์ง = new Date(`2020-${a}-${b}`)
const ์์ผ = ๋ ์ง.toString().slice(0,3).toUpperCase()
console.log(์์ผ)
}
calcul(a,b) //"SUN"
๐์ ์๋๋ก์ง๐
๋ด๊ฐ ํ ๊ฒ์ฒ๋ผ Date๊ฐ์ฒด๋ฅผ ์ด์ฉํ ๋ค, getDay() ๋ฉ์๋๋ฅผ ํตํด
์์ผ์ index๋ฅผ ๋ฐํํ์๋ค.
0์ ์ผ์์ผ, 1์ ์์์ผ '''.
const month = prompt('์์ ์
๋ ฅํ์ธ์.');
const date = prompt('์ผ์ ์
๋ ฅํ์ธ์.');
function solution(a,b){
const day = ["SUN","MON","TUE","WED","THU","FRI","SAT"];
const x = new Date('2020-'+a+'-'+b);
return day[x.getDay()];
}
console.log(solution(month, date));
์ฐ๋ฆฌ๊ฐ ํํ ์ฌ์ฉํ๋ ์ซ์ 1, 8, 19, 28893 ๋ฑ๋ฑ...์ 10์ง์ ์ฒด๊ณ์
๋๋ค.
์ด๋ฅผ ์ปดํจํฐ๊ฐ ์์ ๋ค์ ์ ์๋ 2์ง์๋ก ๋ฐ๊พธ๋ ค๊ณ ํฉ๋๋ค. ์ด๋ป๊ฒ ํด์ผํ ๊น์?
์ฌ์ฉ์์๊ฒ ์ซ์๋ฅผ ์ ๋ ฅ๋ฐ๊ณ ์ด๋ฅผ 2์ง์๋ฅผ ๋ฐ๊พธ๊ณ ๊ทธ ๊ฐ์ ์ถ๋ ฅํด์ฃผ์ธ์.
๐๋ก์ง๐
์ฐ์ 10์ง์๋ฅผ 2์ง์๋ก ๋ฐ๊พธ๋ ๋ฐฉ๋ฒ์ด๋ค.
2๋ก ๊ณ์ ๋๋๋ค, ๋๋จธ์ง๋ฅผ ์ ์ฅํด์ผํ๋ค!
let num = prompt('10์ง์๋ฅผ ์
๋ ฅํด์ฃผ์ธ์.')
let ๋๋จธ์ง๋ฐฐ์ด = []; //๋๋จธ์ง๋ฅผ ์ ์ฅํ๋ ๋ฐฐ์ด
let result = '';
while (num){ //a๊ฐ 0์ด๋ฉด ์ข
๋ฃ๋จ
๋๋จธ์ง๋ฐฐ์ด.push(num % 2);
num = Math.floor(num/2) //์์๊ฐ ๋์ค๋๊ฑธ ๋ฐฉ์งํ๋ค.
}
์ฌ์ง์ ์๋ฅผ๋ค์ด ๋งจ์ฒ์์ num์ 13 ์ด์๋๋ฐ,
2๋ก ๋๋ ๋๋จธ์ง 1์ ์ ์ฅํ๊ณ , 6์ ๋ค์ num์ ์ง์ด๋ฃ์.
๊ทธ๋ฆฌ๊ณ ๊ณ์ ๋ฐ๋ณต!
๋๋จธ์ง๋ฐฐ์ด.reverse(); // ์์๋ฅผ ์ญ์ผ๋ก ๋ฐ๊ฟ์ค์ผํจ
๋ง์ฝ num์ด 32๋ผ๋ฉด, reverseํ ๊ฐ์ด
[1,0,0,0,0,0] ์.
์ฐ๋ฆฌ๊ฐ ์ํ๋ ๊ฐ์ 100000์ด๋ฏ๋ก,
join("") ํด์ค๋ค.
๋๋จธ์ง๋ฐฐ์ด.reverse().join("")
์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ์์ ์ ์์ ๊ฐ ์๋ฆฌ์์ ํฉ์ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ๋ง๋ค์ด์ฃผ์ธ์
์๋ฅผ๋ค์ด
18234 = 1+8+2+3+4 ์ด๊ณ ์ ๋ต์ 18 ์
๋๋ค.
3849 = 3+8+4+9 ์ด๊ณ ์ ๋ต์ 24์
๋๋ค.
์
์ถ๋ ฅ
์
๋ ฅ : 18234
์ถ๋ ฅ : 18
์
๋ ฅ : 3849
์ถ๋ ฅ : 24
๐ํ์ด๐
const num = '3849'
let sum = 0;
num.split('').forEach(
el=> sum = sum +parseInt(el)
)
console.log(sum)
Date๊ฐ์ฒด์ ๋ฉ์๋ ์ค ํ๋์ธ getTime()์ 1970๋ 1์ 1์ผ 0์ 0๋ถ 0์ด ์ดํ๋ก๋ถํฐ ์ง๊ธ๊น์ง ํ๋ฅธ ์๊ฐ์ ์ฒ๋ถ์ 1์ด ๋จ์(ms)๋ก ๋ฐํํฉ๋๋ค.
1000ms = 1์ด
์ด๋ฅผ ์ด์ฉํ์ฌ ํ์ฌ ๋ ๋(2023)๋ฅผ ์ถ๋ ฅํด๋ณด์ธ์.
const ์ง๊ธ = new Date();
์ง๊ธ.getTime()
๐ 1970๋ 1์ 1์ผ 0์ 0๋ถ 0์ด ์ดํ๋ก๋ถํฐ ์ง๊ธ๊น์ง ํ๋ฅธ ์๊ฐ์ ์ฒ๋ถ์ 1์ด ๋จ์(ms)๋ก ๋ฐํ
์ผ๋ ์ ๋ช ms์ธ์ง ๋จผ์ ์์๋ด๊ณ , ์ง๊ธ๊น์งํ๋ฅธms๋ฅผ ๋๋๋ค.
1970์๋ค ๋๋ ๋ชซ์ ๋ํ๋ฉด ํ์ฌ ๋ ๋!
โ1๋
์ ๋ช ms์ผ๊น์โ => ์ฐ์ 1๋
์ด ๋ช ์ด์ธ์ง ๊ตฌํ ํ, 1000์ ๊ณฑํ์.
ํ๋ฃจ ์ด * 365 = 1๋
์ด
-------------------------------------------
ํ์๊ฐ ๐ 60์ด * 60 = 3600์ด
ํ๋ฃจ ๐ 60์ด * 60 * 24 = 86400์ด
1๋
๐ 60์ด * 60 * 24 * 365 = 31536000์ด
1๋
์ ms ๋ก ๐ 60์ด * 60 * 24 * 365 * 1000 = 31536000000(ms)
-------------------------------------------
๐์ ์๋ํ์ด๐
const now = new Date()
const ํ๋ฅธ์ธ์ = Math.floor(now.getTime()/(60*60*24*365*1000))
console.log(1970+ํ๋ฅธ์ธ์)
// 2023
1๋ถํฐ 20๊น์ง์(20์ ํฌํจ) ๋ชจ๋ ์ซ์๋ฅผ ์ผ๋ ฌ๋ก ๋๊ณ ๋ชจ๋ ์๋ฆฟ์์ ์ด ํฉ์ ๊ตฌํ์ธ์.
์๋ฅผ ๋ค์ด 10๋ถํฐ 15๊น์ง์ ๋ชจ๋ ์ซ์๋ฅผ ์ผ๋ ฌ๋ก ๋์ผ๋ฉด 101112131415์ด๊ณ
๊ฐ ์๋ฆฌ์ ์ซ์๋ฅผ ๋ํ๋ฉด 21์
๋๋ค. (1+0+1+1+1+2+1+3+1+4+1+5 = 21)
let arr = []
for(let i =1;i<=20;i++){
arr.push(i)
}
//console.log(arr)
//[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
//console.log(arr.join(""))
//"1234567891011121314151617181920"
let sum = 0;
arr.join("").split('').forEach(el => sum=sum+parseInt(el))
console.log(sum) //102
๋ฐ์ธ๋ฉ์์๋ 3์ 29์ผ ์ ์ฃผ๋ํ๊ต์์ '์ ์ฃผ ๋น
๋ฐ์ดํฐ ์ฌํํ์ ํด์ปคํค' ํ์ฌ๋ฅผ ์ฃผ์ตํ๊ฒ ๋์์ต๋๋ค. ์ด์ ๊ตฌ๊ธ ์ค๋ฌธ์ง๋ฅผ ๋ฐฐํฌํ์์ผ๋ ์ ์ฃผ๋ํ์๋ค์ด ์ค๋ณตํด์ n๊ฐ์ฉ ์ค๋ฌธ์ง๋ฅผ ์ ์ถํ์์ต๋๋ค.
์ค๋ณต๋ ๋ฐ์ดํฐ๋ค์ ์ญ์ ํ์ฌ ์ค์ ์ ์ ๋ช
๋จ์ด ๋ช ๋ช
์ธ์ง ์๊ณ ์ถ์ต๋๋ค.
์๋ ์ฃผ์ด์ง ๋ฐ์ดํฐ๋ค๋ก๋ถํฐ ์ค๋ณต์ ์ ๊ฑฐํ์ฌ ์ค์ ์ ์ ์ธ์์ ์ถ๋ ฅํด ์ฃผ์ธ์.
const people = {
์ดํธ์ค: "01050442903",
์ดํธ์: "01051442904",
์ด์คํธ: "01050342904",
์ดํธ์ค: "01050442903",
์ด์ค: "01050412904",
์ดํธ: "01050443904",
์ดํธ์ค: "01050442903"
};
let result = new Set();
for (let key in people) {
result.add(people[key]); //Set๊ฐ์ฒด์ ๋ฐ์ดํฐ์ ์ฅ์ add
}
console.log(result.size);
//size ๋ set ๊ฐ์ฒด ๋ด ๊ฐ์ ๊ฐ์๋ฅผ ๋ฐํํฉ๋๋ค.
-----------------------------------------------
๐คถ ๋๋ Set์ ์ฌ์ฉํ์ง ์๊ณ ํ์๋ค...
const ์ฌ๋๋ค = Object.keys(people)
//["์ดํธ์ค","์ดํธ์","์ด์คํธ","์ด์ค","์ดํธ"]
console.log(์ฌ๋๋ค.length) //5
๋ฌธ์์ด์ด ์ฃผ์ด์ง๋ฉด ๋๋ฌธ์์ ์๋ฌธ์๋ฅผ ๋ฐ๊ฟ์ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์.
์
์ถ๋ ฅ
์
๋ ฅ : AAABBBcccddd
์ถ๋ ฅ : aaabbbCCCDDD
๐๋ก์ง๐
๋ฌธ์์ด์ ํ๋ํ๋ ์ํํด๊ฐ๋ฉด์ ๋์๋ฌธ์๋ก ๋ฐ๊ฟ์ฃผ์
const ๋ฌธ์ ='aaaBBBccc'
let ์ถ๋ ฅ = ''
for(let i in ๋ฌธ์){
if (๋ฌธ์[i].toUpperCase() === ๋ฌธ์[i]){
์ถ๋ ฅ = ์ถ๋ ฅ+๋ฌธ์[i].toLowerCase()
}else{
์ถ๋ ฅ = ์ถ๋ ฅ+๋ฌธ์[i].toUpperCase()
}
}
console.log(์ถ๋ ฅ)
์์๊ฐ ์๋ 10๊ฐ์ ์ซ์๊ฐ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋์ด ์ฃผ์ด์ง๋ค. ์ฃผ์ด์ง ์ซ์๋ค ์ค ์ต๋๊ฐ์ ๋ฐํํ๋ผ.
์
์ถ๋ ฅ
์
๋ ฅ : 10 9 8 7 6 5 4 3 2 1
์ถ๋ ฅ : 10
const ์ซ์ ='10 9 8 7 6 5 4 3 2 1'
const arr = ์ซ์.split(' ')
// ['10', '9', '8', '7', '6', '5', '4', '3', '2', '1']
const newArr = [];
arr.forEach(el => newArr.push(parseInt(el)))
newArr.sort(function(a,b){
return a-b
})
// newArr [1,2,3,4,5,6,7,8,9,10]
console.log(newArr[newArr.length-1]) //10
๋ฒ๋ธ์ ๋ ฌ์ ๋ ์ธ์ ํ ์์๋ฅผ ๊ฒ์ฌํ์ฌ ์ ๋ ฌํ๋ ๋ฐฉ๋ฒ์ ๋งํฉ๋๋ค. ์๊ฐ ๋ณต์ก๋๋ ๋๋ฆฌ์ง๋ง ์ฝ๋๊ฐ ๋จ์ํ๊ธฐ ๋๋ฌธ์ ์์ฃผ ์ฌ์ฉ๋ฉ๋๋ค.
์๋ ์ฝ๋์ ๋น ์นธ์ ์ฑ์ ๋ฒ๋ธ ์ ๋ ฌ์ ์์ฑํด ๋ด ์๋ค.
function bubble(arr) {
let result = arr.slice();
////์๋ณธ ๋ฐฐ์ด๊ฑด๋๋ฆฌ์ง์๊ณ ๋ณต์ ๋ณธ์๋ง๋ค์ด result์๋ค ์ ์ฅํจ
for (let i = 0; i < result.length - 1; i++) { --1๋ฒ
for (let j = 0; j < result.length - i; j++) { --2๋ฒ
if (result[j] > result[j + 1]) {
let value = result[j];
result[j] = result[j+1];
result[j+1] = value;
}
}
}
return result;
}
const items = "9 5 1 2 6 7".split(' ').map((n) => {
return parseInt(n, 10);
});
console.log(bubble(items));
==> [1,2,5,6,7,9]
--1๋ฒ
์์ ์ result.length - 1์ด๋๋ฉด
์๋ฅผ๋ค์ด [5,3,2,4,1]
์ ์ฒซ๋ฒ์งธ์์๋ถํฐ ๋๋จธ์ง์์๋ค๊ณผ ๋น๊ตํ ๋
3 5 2 4 1
3 2 5 4 1
3 2 4 5 1
3 2 4 1 5
์ด๋ ๊ฒ ํ ์์๋ ์ด 4๋ฒ ๋น๊ตํ๊ฒ๋จ. ๊ทธ๋์ result.length-1
--2๋ฒ
์์ j < result.length - i
์
์ i๋ฅผ ๋นผ๋๋ฉด, i๊ฐ 0์ผ๋ ์ซ์ํ๋๊ฐ ์ฌ๋ฐ๋ฅธ ์๋ฆฌ๋ก ์ ๋ ฌ๋๋ฏ๋ก i๊ฐ i++๋ ๋๋ง๋ค i๋ฅผ ๋บ์ผ๋ก์จ ๊ณ์ฐ์ ์ค์ด๊ฒ๋๋๊ฒ
j < result.length - i -1
๋ก ๋์ฒด๊ฐ๋ฅํ๋ฐ, ์ฐ์ j < result.length - i
๋จผ์ ์ดํด๋ณด์
i๊ฐ 0์ผ๋, j๊ฐ 0๋ถํฐ 4๊น์ง ๋๋ค.
j๊ฐ 4์ผ๋
const result = [5,3,2,4,1]
if (result[j] > result[j + 1]) {
let value = result[j];
result[j] = result[j+1];
result[j+1] = value;
}
result[4] > result [5] ์์ result[5]๊ฐ ์์ผ๋ฏ๋ก, false์ด๊ธฐ๋๋ฌธ์ if๋ฌธ์ด ์คํ๋์ง์์. ์ฆ, ๊ฒฐ๊ณผ์๋ ์๋ฌด๋ฐ ์ํฅ์๋ผ์น์ง์์ง๋ง, ์ฐ์ฐํ๋ค๋ฉด
j < result.length - i -1๋ผ๊ณ ๊ณ ์น์.