[ํ๋ก๊ทธ๋๋จธ์ค] Lv1: ์์ธ์์ ๊น์๋ฐฉ ์ฐพ๊ธฐ
๋ฌธ์ ์ค๋ช
Stringํ ๋ฐฐ์ด seoul์ element์ค "Kim"์ ์์น x๋ฅผ ์ฐพ์, "๊น์๋ฐฉ์ x์ ์๋ค"๋ String์ ๋ฐํํ๋ ํจ์, solution์ ์์ฑํ์ธ์. seoul์ "Kim"์ ์ค์ง ํ ๋ฒ๋ง ๋ํ๋๋ฉฐ ์๋ชป๋ ๊ฐ์ด ์
๋ ฅ๋๋ ๊ฒฝ์ฐ๋ ์์ต๋๋ค.
์ ํ์ฌํญ
์ ์ถ๋ ฅ ์
seoul | return |
---|---|
["Jane", "Kim"] | "๊น์๋ฐฉ์ 1์ ์๋ค" |
function solution(seoul) {
let answer = 0;
for (let i = 0; i < seoul.length; i++) {
if (seoul[i] === "Kim") answer = i;
}
return (answer = `๊น์๋ฐฉ์ ${answer}์ ์๋ค`);
}
๊ตฌํ ์ ๊ทผ
1. seoul์ ๊ฐ์ผ๋ก String ๋ฐฐ์ด ์
๋ ฅ.
2. String ๋ฐฐ์ด์ element๋ก "Kim"์ ์์น ์ฐพ๊ธฐ ์ํ ๋ฐ๋ณต.
3. ์กฐ๊ฑด์ ํตํด Kim๊ณผ ๋ฐฐ์ด์ ์ธ๋ฑ์ค ์์น ์ฐพ๊ธฐ.
4. answer์ ์ธ๋ฑ์ค๋ฅผ ์ฌํ ๋น.
๋ค๋ฅธ ์ฌ๋ ํ์ด
function findKim(seoul) {
return "๊น์๋ฐฉ์ " + seoul.indexOf('Kim') + "์ ์๋ค";
}
Array.indexOf( )๋ฉ์๋ : indexOf( ) ๋ฉ์๋๋ ๋ฐฐ์ด์์ ์ง์ ๋ ์์๋ฅผ ์ฐพ์ ์ ์๋ ์ฒซ ๋ฒ์งธ ์ธ๋ฑ์ค๋ฅผ ๋ฐํํ๊ณ ์กด์ฌํ์ง ์์ผ๋ฉด -1์ ๋ฐํํฉ๋๋ค.
๋ฅผ ํตํด ์ฝ๋๋ฅผ ํ ์ค๋ก ๊ฐ์ ํ ์ ์๋ ๋ฐฉ๋ฒ๋ ์์๋ค.
[ํ๋ก๊ทธ๋๋จธ์ค] Lv1: ๋๋์ด ๋จ์ด์ง๋ ์ซ์ ๋ฐฐ์ด
๋ฌธ์ ์ค๋ช
array์ ๊ฐ element ์ค divisor๋ก ๋๋์ด ๋จ์ด์ง๋ ๊ฐ์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ ๋ฐฐ์ด์ ๋ฐํํ๋ ํจ์, solution์ ์์ฑํด์ฃผ์ธ์.
divisor๋ก ๋๋์ด ๋จ์ด์ง๋ element๊ฐ ํ๋๋ ์๋ค๋ฉด ๋ฐฐ์ด์ -1์ ๋ด์ ๋ฐํํ์ธ์.
์ ํ์ฌํญ
์ ์ถ๋ ฅ ์
arr | divisor | return |
---|---|---|
[5, 9, 7, 10] | 5 | [5,10] |
[2, 36, 1, 3] | 1 | [1,2,3,36] |
[3,2,6] | 10 | [-1] |
// array์ ๊ฐ element ์ค divisor๋ก ๋๋์ด ๋จ์ด์ง๋ ๊ฐ์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ ๋ฐฐ์ด์ ๋ฐํํ๋ ํจ์,
// solution์ ์์ฑํด์ฃผ์ธ์.
// divisor๋ก ๋๋์ด ๋จ์ด์ง๋ element๊ฐ ํ๋๋ ์๋ค๋ฉด ๋ฐฐ์ด์ -1์ ๋ด์ ๋ฐํํ์ธ์.
function solution(arr, divisor) {
var answer = arr.filter((e) => e % divisor === 0).sort((a, b) => a - b);
if (answer.length === 0) answer = [-1];
return answer;
}
๊ตฌํ ์ ๊ทผ
๋ฌธ์ ์
if์ ์กฐ๊ฑด์ผ๋ก (๋น๋ฐฐ์ด์ด๋ฉด)์ ํด๋นํ๋ ๋ถ๋ถ์ด
if(answer == []) answer = [-1]
์ผ๋ก ์ค์ ํ์๋๋ฐ Javascript์์๋ [ ] ๋ฐฐ์ด type์ด object ์ค์ ๋์ด ์๊ธฐ ๋๋ฌธ์ ์ํ๋ ๋ฐํ ๊ฐ์ด ๋์ค์ง ์์์๋ค.
if(answer.length == 0) answer = [-1]
์์ ๊ฐ์ด ์์ ๋์ด์ผ ๋ฐฐ์ด์ด ๋น์ด์๋์ง ์๋์ง ํ์ธํ ์ ์๋ ์กฐ๊ฑด์ด ์์ฑ ๋๋ค.
[ํ๋ก๊ทธ๋๋จธ์ค] Lv1: ํธ๋ํฐ ๋ฒํธ ๊ฐ๋ฆฌ๊ธฐ
๋ฌธ์ ์ค๋ช
ํ๋ก๊ทธ๋๋จธ์ค ๋ชจ๋ฐ์ผ์ ๊ฐ์ธ์ ๋ณด ๋ณดํธ๋ฅผ ์ํด ๊ณ ์ง์๋ฅผ ๋ณด๋ผ ๋ ๊ณ ๊ฐ๋ค์ ์ ํ๋ฒํธ์ ์ผ๋ถ๋ฅผ ๊ฐ๋ฆฝ๋๋ค.
์ ํ๋ฒํธ๊ฐ ๋ฌธ์์ด phone_number๋ก ์ฃผ์ด์ก์ ๋, ์ ํ๋ฒํธ์ ๋ท 4์๋ฆฌ๋ฅผ ์ ์ธํ ๋๋จธ์ง ์ซ์๋ฅผ ์ ๋ถ *์ผ๋ก ๊ฐ๋ฆฐ ๋ฌธ์์ด์ ๋ฆฌํดํ๋ ํจ์, solution์ ์์ฑํด์ฃผ์ธ์.
์ ํ์ฌํญ
์ ์ถ๋ ฅ ์
phone_number | return |
---|---|
"01033334444" | "* * * * * * * 4444" |
"027778888" | "* * * * *8888" |
// ํ๋ก๊ทธ๋๋จธ์ค ๋ชจ๋ฐ์ผ์ ๊ฐ์ธ์ ๋ณด ๋ณดํธ๋ฅผ ์ํด ๊ณ ์ง์๋ฅผ ๋ณด๋ผ ๋ ๊ณ ๊ฐ๋ค์ ์ ํ๋ฒํธ์ ์ผ๋ถ๋ฅผ ๊ฐ๋ฆฝ๋๋ค.
// ์ ํ๋ฒํธ๊ฐ ๋ฌธ์์ด phone_number๋ก ์ฃผ์ด์ก์ ๋,
// ์ ํ๋ฒํธ์ ๋ท 4์๋ฆฌ๋ฅผ ์ ์ธํ ๋๋จธ์ง ์ซ์๋ฅผ ์ ๋ถ *์ผ๋ก ๊ฐ๋ฆฐ ๋ฌธ์์ด์ ๋ฆฌํดํ๋ ํจ์,
// solution์ ์์ฑํด์ฃผ์ธ์.
function solution(phone_number) {
var answer = phone_number.split("").fill("*", 0, -4);
return answer.join("");
}
๊ตฌํ ์ ๊ทผ
1. ๋ฌธ์์ด๋ก ์
๋ ฅ๋๋ phone_number๋ฅผ split('')๋ฅผ ์ด์ฉํ์ฌ ๊ฐ๋ณ๋ก ๋๋์ด์ง ๋ฐฐ์ด๋ก ๋ฐํ
2. ํด๋น ๋ฐฐ์ด์ fill(value,start, end) ๋ฉ์๋๋ฅผ ์ด์ฉํ์ฌ ๋ฃ๊ณ ์ ํ๋ value์ '*'๋ฅผ ์
๋ ฅํ๊ณ ์ธ๋ฑ์ค์ ์์ ๊ฐ๊ณผ ์ ์ฉ์์ผ์ผ ํ ์ธ๋ฑ์ค๊น์ง ๋ฒ์๋ฅผ ์ ํด์ฃผ์๋ค.
3. ๋ฌธ์์ด๋ก ๋ฐํํด์ผ ํ๊ธฐ ๋๋ฌธ์ join( )๋ฉ์๋๋ฅผ ์ด์ฉํ์ฌ ๋ฌธ์์ด ๋ฐํ.
= ๊ณต์ MDN ๋ฌธ์์ ํ์ค๋ด์ฅ ๊ฐ์ฒด๋ฅผ ํตํด ๊พธ์คํ ํ์ตํ๋ค ๋ณด๋ '๋ญ๊ฐ ์ด๋ฐ ์ข ๋ฅ์ ๋ฉ์๋๊ฐ ์์๋ ๊ฒ ๊ฐ์๋ฐ,,,'ํ๋ฉด์ ์ฐพ๋ค๋ณด๋ ๊ธ๋ฐฉ ๊ธ๋ฐฉ ์ฐพ์์ ์ ์ฉ ํ ์ ์๊ฒ ๋๋ ๊ฒ ๊ฐ๋ค.
#1
function hide_numbers(s){
return s.replace(/\d(?=\d{4})/g, "*");
}
replace( ) ๋ฉ์๋๋ ์ด๋ค ํจํด์ ์ผ์นํ๋ ์ผ๋ถ ๋๋ ๋ชจ๋ ๋ถ๋ถ์ด ๊ต์ฒด๋ ์๋ก์ด ๋ฌธ์์ด์ ๋ฐํํฉ๋๋ค. ๊ทธ ํจํด์ ๋ฌธ์์ด์ด๋ ์ ๊ท์(RegExp)์ด ๋ ์ ์์ผ๋ฉฐ, ๊ต์ฒด ๋ฌธ์์ด์ ๋ฌธ์์ด์ด๋ ๋ชจ๋ ๋งค์น์ ๋ํด์ ํธ์ถ๋ ํจ์์ผ ์ ์์ต๋๋ค.
๊ณต์๋ฌธ์ MDN์ ๋์์๊ธฐ๋ฅผ, ์ ๊ท์์ ์ด์ฉํ์ฌ string ํ์ ์ ๋ฉ์๋๋ค ํ์ฉํ ์ ์๋ ๋ฒ์๊ฐ ๋์ด์ง๋ ๊ฒ ๊ฐ์๋ค. ์ ๊ท์ ๊ด๋ จํด์๋ ๊ณต๋ถ๋ฅผ ์ผ๋ฅธ ํ๊ณ ์ ์ฉํด๋ณผ ์ ์๊ธฐ๋ฅผ!!
#2
function hide_numbers(s){
var result = "*".repeat(s.length - 4) + s.slice(-4);
return result;
}
String.prototype ๊ด๋ จํ์ฌ ๋ฉ์๋๋ฅผ ์ ์ฉ์ํค์ ๋ถ๋ค๋ ๊ณ์ จ๋ค. ํจ์ฌ ๊ฐ๋จํ๊ฒ ์ ์ฉ ํ ์ ์์ ๊ฒ๋ ๊ฐ๋ค.
Array ๋ฉ์๋๋ง ์ ์ฉํ๋ ค ํ์ง๋ง๊ณ ๋ค์ํ ํ์ ์ ๋ฉ์๋๋ฅผ ์ ์ฉํ ์ ์๋๋ก ํด๋ณด์!