๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Algorithm_JS

์•Œ๊ณ ๋ฆฌ์ฆ˜(8) : ์„œ์šธ์—์„œ ๊น€์„œ๋ฐฉ ์ฐพ๊ธฐ _ Lv.1

by oranssy 2022. 11. 3.
728x90
๋ฐ˜์‘ํ˜•

โญ๏ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜(8) : ์„œ์šธ์—์„œ ๊น€์„œ๋ฐฉ ์ฐพ๊ธฐ _ Lv.1 โญ๏ธ


01. ๋ฌธ์ œ ์„ค๋ช…

๐Ÿงฉ Stringํ˜• ๋ฐฐ์—ด seoul์˜ element์ค‘ "Kim"์˜ ์œ„์น˜ x๋ฅผ ์ฐพ์•„, "๊น€์„œ๋ฐฉ์€ x์— ์žˆ๋‹ค"๋Š” String์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•˜์„ธ์š”.
๐Ÿงฉ seoul์— "Kim"์€ ์˜ค์ง ํ•œ ๋ฒˆ๋งŒ ๋‚˜ํƒ€๋‚˜๋ฉฐ ์ž˜๋ชป๋œ ๊ฐ’์ด ์ž…๋ ฅ๋˜๋Š” ๊ฒฝ์šฐ๋Š” ์—†์Šต๋‹ˆ๋‹ค.
๐Ÿงฉ ์˜ˆ๋ฅผ ๋“ค์–ด seoul = ["Jane", "Kim"] "๊น€์„œ๋ฐฉ์€ 1์— ์žˆ๋‹ค"๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.
๐Ÿ”’ ์ œํ•œ ์กฐ๊ฑด : โ˜‘๏ธ seoul์€ ๊ธธ์ด 1 ์ด์ƒ, 1000 ์ดํ•˜์ธ ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค. โ˜‘๏ธ seoul์˜ ์›์†Œ๋Š” ๊ธธ์ด 1 ์ด์ƒ, 20 ์ดํ•˜์ธ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค. โ˜‘๏ธ "Kim"์€ ๋ฐ˜๋“œ์‹œ seoul ์•ˆ์— ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

02. " solution.js " ๋ฌธ์ œ ํ’€์–ด๋ณด๊ธฐ

๐Ÿ’ก ๋ฐฐ์—ด์—์„œ "kim"์˜ ์ธ๋ฑ์Šค๋ฅผ ์ฐพ์•„์„œ ์š”์†Œ์˜ ๊ฐ’์„ ์ถœ๋ ฅํ•ด๋ณด์ž.

const seoul = ["Jane", "Kim"];

function solution(location) {
  return `๊น€์„œ๋ฐฉ์€ ${location.indexOf("Kim")}์— ์žˆ๋‹ค`;
}
console.log(solution(seoul))

   ___ ์ฐธ๊ณ ํ•˜๊ธฐ ___
  `1   Array.prototype.indexOf( ) : ๋ฐฐ์—ด์—์„œ ์ง€์ •๋œ ์š”์†Œ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ์ฒซ ๋ฒˆ์งธ ์ธ๋ฑ์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ  ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด -1์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
                                                          ์ฐพ๋Š” ๋Œ€์ƒ์ด ๊ฐ์ฒด์ผ ๊ฒฝ์šฐ ๋˜๋Š” ์–ด๋–ค ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ๊ฐ’์„ ์ฐพ์„ ๊ฒฝ์šฐ์—๋Š” ๊ฐ’์„ ์ฐพ๊ธฐ ์–ด๋ ต๊ธฐ ๋•Œ๋ฌธ์—, ์ด๋Ÿฐ ๊ฒฝ์šฐ๋Š” findIndex( )๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

03. ๋‹ค๋ฅธ ํ’€์ด ์•Œ์•„๋ณด๊ธฐ

# 1) findIndex( ) ํ™œ์šฉํ•˜๊ธฐ

const seoul = ["Jane", "Kim"];

let solution = (location) => `๊น€์„œ๋ฐฉ์€ ${location.findIndex(s => s === 'Kim')}์— ์žˆ๋‹ค`;
// function ์ƒ๋žต, ํ™”์‚ดํ‘œ ํ•จ์ˆ˜, return ์ƒ๋žต
    
console.log(solution(seoul))

   ___ ์ฐธ๊ณ ํ•˜๊ธฐ ___
  `1   Array.prototype.findIndex( ) : ์ฃผ์–ด์ง„ ํŒ๋ณ„ ํ•จ์ˆ˜๋ฅผ ๋งŒ์กฑํ•˜๋Š” ๋ฐฐ์—ด์˜ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ์— ๋Œ€ํ•œ ์ธ๋ฑ์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์กฑํ•˜๋Š” ์š”์†Œ๊ฐ€ ์—†์œผ๋ฉด -1์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

 

# 2) for๋ฌธ๊ณผ if๋ฌธ ํ™œ์šฉํ•˜๊ธฐ

const seoul = ["Jane", "Kim"];

function solution(location){
    let idx = 0;

    for (let i=0; i<location.length; i++){

        if (location[i] === 'Kim'){
            idx += i;
            break;          // ์ข…๋ฃŒ๋˜์—ˆ์„ ๋•Œ i์˜ ๊ฐ’ : 1
        }
}
    return "๊น€์„œ๋ฐฉ์€ " + idx + "์— ์žˆ๋‹ค";
}
console.log(solution(seoul))

   ___ ์ฐธ๊ณ ํ•˜๊ธฐ ___
  `1   for๋ฌธ : ๊ด„ํ˜ธ ์•ˆ์˜ ์‹์„ ๋ฐ˜๋ณต ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  `2   if๋ฌธ : if๋ฌธ์€ ์ง€์ •ํ•œ ์กฐ๊ฑด์ด ์ฐธ์ธ ๊ฒฝ์šฐ ๋ช…๋ น๋ฌธ(statement)์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์กฐ๊ฑด์ด ๊ฑฐ์ง“์ธ ๊ฒฝ์šฐ ๋˜ ๋‹ค๋ฅธ ๋ช…๋ น๋ฌธ์ด ์‹คํ–‰๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

728x90
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€