🌈 ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€

[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€: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