๐Ÿค ์€์ง€log ๐Ÿค

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค:Javascript] 2์˜ ์˜์—ญ ๋ณธ๋ฌธ

๐ŸŒˆ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค:Javascript] 2์˜ ์˜์—ญ

Eun_zii 2024. 3. 29. 15:45

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค Lv.0

- 2์˜ ์˜์—ญ

 

๐Ÿ’š ๋ฌธ์ œ์„ค๋ช…

  • ์ •์ˆ˜ ๋ฐฐ์—ด arr๊ฐ€ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ๋ฐฐ์—ด ์•ˆ์˜ 2๊ฐ€ ๋ชจ๋‘ ํฌํ•จ๋œ ๊ฐ€์žฅ ์ž‘์€ ์—ฐ์†๋œ ๋ถ€๋ถ„ ๋ฐฐ์—ด์„ return ํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด ์ฃผ์„ธ์š”.๋‹จ, arr์— 2๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ [-1]์„ return ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ’š ์ œํ•œ์กฐ๊ฑด

  • 1 ≤ arr์˜ ๊ธธ์ด ≤ 100,000
    • 1 ≤ arr์˜ ์›์†Œ ≤ 10

๐Ÿ’š ํ’€์ด

function solution(arr) {
    const sIndex = arr.indexOf(2);
    const eIndex = arr.lastIndexOf(2);
    if (sIndex !== -1) {
    return arr.slice(sIndex, eIndex + 1);
    } else {
        return [-1]
    }
}

 

โœ… 

๐Ÿ’ก indexOf( ) ๋ฉ”์„œ๋“œ๋Š” ๋ฐฐ์—ด์—์„œ ์ฃผ์–ด์ง„ ์š”์†Œ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ์ฒซ ๋ฒˆ์งธ ์ธ๋ฑ์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ , ์ฐพ์„ ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ -1์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ’ก lastIndexOf( ) ๋ฉ”์„œ๋“œ๋Š” ๋ฐฐ์—ด์—์„œ ํŠน์ • ์š”์†Œ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ๋งˆ์ง€๋ง‰ ์ธ๋ฑ์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ฑฐ๋‚˜, ํ•ด๋‹น ์š”์†Œ๊ฐ€ ์—†์œผ๋ฉด -1์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. 

 

sIndex ๋ณ€์ˆ˜์— arr์—์„œ ์ˆซ์ž 2์˜ ์ฒซ ๋ฒˆ์งธ ๋“ฑ์žฅ ์œ„์น˜์˜ ์ธ๋ฑ์Šค๋ฅผ ์ €์žฅํ•˜๊ณ , (๋งŒ์•ฝ ๋ฐฐ์—ด์— ์ˆซ์ž 2๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด -1์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. )

eIndex ๋ณ€์ˆ˜์—๋Š” arr์—์„œ ์ˆซ์ž 2์˜ ๋งˆ์ง€๋ง‰ ๋“ฑ์žฅ ์œ„์น˜์˜ ์ธ๋ฑ์Šค๋ฅผ ์ €์žฅํ•œ๋‹ค. (๋งŒ์•ฝ ๋ฐฐ์—ด์— ์ˆซ์ž 2๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด -1์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. )

 

๋งŒ์•ฝ sIndex๊ฐ€ -1์ด ์•„๋‹ˆ๋ผ๋ฉด (= ๋ฐฐ์—ด์— ์ˆซ์ž 2๊ฐ€ ์กด์žฌํ•œ๋‹ค๋ฉด)

arr.slice(sIndex, eIndex + 1)์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐ์—ด์—์„œ ์ฒซ ๋ฒˆ์งธ ๋“ฑ์žฅ ์œ„์น˜๋ถ€ํ„ฐ ๋งˆ์ง€๋ง‰ ๋“ฑ์žฅ ์œ„์น˜๊นŒ์ง€์˜ ๋ถ€๋ถ„ ๋ฐฐ์—ด์„ return ํ•ด์ค€๋‹ค.

๋ฐฐ์—ด์— ์ˆซ์ž 2๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด [-1]์„ return ํ•ด์ค€๋‹ค.

728x90