๐ŸŸฃ ์˜ค๋Š˜์˜ ๋ฌธ์ œ ํšŒ๊ณ 

๊น€ํƒœ์šฑยท2023๋…„ 3์›” 23์ผ
0
post-thumbnail

๐Ÿซ  ์˜ค๋Š˜์˜ ๋ฌธ์ œ ํ•ฅ์ง #1


[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] Lv1: ์„œ์šธ์—์„œ ๊น€์„œ๋ฐฉ ์ฐพ๊ธฐ

๋ฌธ์ œ ์„ค๋ช…
Stringํ˜• ๋ฐฐ์—ด seoul์˜ element์ค‘ "Kim"์˜ ์œ„์น˜ x๋ฅผ ์ฐพ์•„, "๊น€์„œ๋ฐฉ์€ x์— ์žˆ๋‹ค"๋Š” String์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•˜์„ธ์š”. seoul์— "Kim"์€ ์˜ค์ง ํ•œ ๋ฒˆ๋งŒ ๋‚˜ํƒ€๋‚˜๋ฉฐ ์ž˜๋ชป๋œ ๊ฐ’์ด ์ž…๋ ฅ๋˜๋Š” ๊ฒฝ์šฐ๋Š” ์—†์Šต๋‹ˆ๋‹ค.

์ œํ•œ์‚ฌํ•ญ

  • seoul์€ ๊ธธ์ด 1 ์ด์ƒ, 1000 ์ดํ•˜์ธ ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค.
  • seoul์˜ ์›์†Œ๋Š” ๊ธธ์ด 1 ์ด์ƒ, 20 ์ดํ•˜์ธ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค.
  • "Kim"์€ ๋ฐ˜๋“œ์‹œ seoul ์•ˆ์— ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

seoulreturn
["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์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

๋ฅผ ํ†ตํ•ด ์ฝ”๋“œ๋ฅผ ํ•œ ์ค„๋กœ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์—ˆ๋‹ค.


๐Ÿซ  ์˜ค๋Š˜์˜ ๋ฌธ์ œ ํ•ฅ์ง #2

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] Lv1: ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋Š” ์ˆซ์ž ๋ฐฐ์—ด

๋ฌธ์ œ ์„ค๋ช…
array์˜ ๊ฐ element ์ค‘ divisor๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋Š” ๊ฐ’์„ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.
divisor๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋Š” element๊ฐ€ ํ•˜๋‚˜๋„ ์—†๋‹ค๋ฉด ๋ฐฐ์—ด์— -1์„ ๋‹ด์•„ ๋ฐ˜ํ™˜ํ•˜์„ธ์š”.

์ œํ•œ์‚ฌํ•ญ

  • arr์€ ์ž์—ฐ์ˆ˜๋ฅผ ๋‹ด์€ ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค.
  • ์ •์ˆ˜ i, j์— ๋Œ€ํ•ด i โ‰  j ์ด๋ฉด arr[i] โ‰  arr[j] ์ž…๋‹ˆ๋‹ค.
  • divisor๋Š” ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค.
  • array๋Š” ๊ธธ์ด 1 ์ด์ƒ์ธ ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

arrdivisorreturn
[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;
}

๊ตฌํ˜„ ์ ‘๊ทผ

  1. array์˜ ๊ฐ element ์ค‘ divisor๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋Š” ๊ฐ’์„
    = divisor๋กœ ๋‚˜๋ˆ„์–ด๋–จ์–ด์ง€๋Š” ์กฐ๊ฑด์„ filter( )๋ฉ”์†Œ๋“œ๋ฅผ ์ด์šฉํ•˜์—ฌ ์กฐ๊ฑด์˜ true๊ฐ€ ๋˜์–ด ๋ฐ˜ํ™˜๋˜๋Š” ๋ฐฐ์—ด ๋ฐ›์•„์˜ด
  2. ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜,
    = sort( )๋ฅผ ์ด์šฉํ•˜์—ฌ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ
  3. divisor๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋Š” element๊ฐ€ ํ•˜๋‚˜๋„ ์—†๋‹ค๋ฉด ๋ฐฐ์—ด์— -1์„ ๋‹ด์•„ ๋ฐ˜ํ™˜ํ•˜์„ธ์š”.
    = if( )์กฐ๊ฑด์— ๋ฐ˜ํ™˜๋˜๋Š” ๋ฐฐ์—ด์ด ๋นˆ๋ฐฐ์—ด์ด๋ฉด [-1]์„ ๋ฐ˜ํ™˜ ํ•˜๋„๋ก ์„ค์ •.


๋ฌธ์ œ์ 

if์˜ ์กฐ๊ฑด์œผ๋กœ (๋นˆ๋ฐฐ์—ด์ด๋ฉด)์— ํ•ด๋‹นํ•˜๋Š” ๋ถ€๋ถ„์ด

if(answer == []) answer = [-1]

์œผ๋กœ ์„ค์ •ํ•˜์˜€๋Š”๋ฐ Javascript์—์„œ๋Š” [ ] ๋ฐฐ์—ด type์ด object ์„ค์ •๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์›ํ•˜๋Š” ๋ฐ˜ํ™˜ ๊ฐ’์ด ๋‚˜์˜ค์ง€ ์•Š์•˜์—ˆ๋‹ค.

if(answer.length == 0) answer = [-1]

์œ„์™€ ๊ฐ™์ด ์ˆ˜์ •๋˜์–ด์•ผ ๋ฐฐ์—ด์ด ๋น„์–ด์žˆ๋Š”์ง€ ์—†๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ์กฐ๊ฑด์ด ์™„์„ฑ ๋œ๋‹ค.


๐Ÿซ  ์˜ค๋Š˜์˜ ๋ฌธ์ œ ํ•ฅ์ง #3

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] Lv1: ํ•ธ๋“œํฐ ๋ฒˆํ˜ธ ๊ฐ€๋ฆฌ๊ธฐ

๋ฌธ์ œ ์„ค๋ช…
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ชจ๋ฐ”์ผ์€ ๊ฐœ์ธ์ •๋ณด ๋ณดํ˜ธ๋ฅผ ์œ„ํ•ด ๊ณ ์ง€์„œ๋ฅผ ๋ณด๋‚ผ ๋•Œ ๊ณ ๊ฐ๋“ค์˜ ์ „ํ™”๋ฒˆํ˜ธ์˜ ์ผ๋ถ€๋ฅผ ๊ฐ€๋ฆฝ๋‹ˆ๋‹ค.
์ „ํ™”๋ฒˆํ˜ธ๊ฐ€ ๋ฌธ์ž์—ด phone_number๋กœ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ „ํ™”๋ฒˆํ˜ธ์˜ ๋’ท 4์ž๋ฆฌ๋ฅผ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ์ˆซ์ž๋ฅผ ์ „๋ถ€ *์œผ๋กœ ๊ฐ€๋ฆฐ ๋ฌธ์ž์—ด์„ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

์ œํ•œ์‚ฌํ•ญ

  • phone_number๋Š” ๊ธธ์ด 4 ์ด์ƒ, 20์ดํ•˜์ธ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

phone_numberreturn
"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 ๋ฉ”์†Œ๋“œ๋งŒ ์ ์šฉํ•˜๋ ค ํ•˜์ง€๋ง๊ณ  ๋‹ค์–‘ํ•œ ํƒ€์ž…์˜ ๋ฉ”์†Œ๋“œ๋ฅผ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด๋ณด์ž!

profile
๋ฐฉ๋ฒ•์„ ์—ฐ๊ตฌํ•  ์ค„ ์•„๋Š” ๊ฐœ๋ฐœ์ž!

0๊ฐœ์˜ ๋Œ“๊ธ€