Design-loving front-end engineer
Ryong
Design-loving front-end engineer
전체 방문자
였늘
μ–΄μ œ
    • Framework
    • React
      • Concept
      • Library
      • Hook
      • Component
      • Test
    • NodeJS
    • Android
      • Concept
      • Code
      • Sunflower
      • Etc
    • Flutter
      • Concept
      • Package
    • Web
    • Web
    • CSS
    • Language
    • JavaScript
    • TypeScript
    • Kotlin
    • Dart
    • Algorithm
    • Data Structure
    • Programmers
    • Management
    • Git
    • Editor
    • VSCode
    • Knowledge
    • Voice
Design-loving front-end engineer

Ryong

Programmers

[ 1단계 ] 체윑볡

2022. 8. 4. 21:57

πŸ”΄  문제 μ„€λͺ…

μ μ‹¬μ‹œκ°„μ— 도둑이 λ“€μ–΄, 일뢀 학생이 μ²΄μœ‘λ³΅μ„ λ„λ‚œλ‹Ήν–ˆμŠ΅λ‹ˆλ‹€. λ‹€ν–‰νžˆ μ—¬λ²Œ 체윑볡이 μžˆλŠ” 학생이 μ΄λ“€μ—κ²Œ μ²΄μœ‘λ³΅μ„ 빌렀주렀 ν•©λ‹ˆλ‹€. ν•™μƒλ“€μ˜ λ²ˆν˜ΈλŠ” 체격 순으둜 맀겨져 μžˆμ–΄, λ°”λ‘œ μ•žλ²ˆν˜Έμ˜ ν•™μƒμ΄λ‚˜ λ°”λ‘œ λ’·λ²ˆν˜Έμ˜ ν•™μƒμ—κ²Œλ§Œ μ²΄μœ‘λ³΅μ„ λΉŒλ €μ€„ 수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, 4번 학생은 3번 ν•™μƒμ΄λ‚˜ 5번 ν•™μƒμ—κ²Œλ§Œ μ²΄μœ‘λ³΅μ„ λΉŒλ €μ€„ 수 μžˆμŠ΅λ‹ˆλ‹€. 체윑볡이 μ—†μœΌλ©΄ μˆ˜μ—…μ„ 듀을 수 μ—†κΈ° λ•Œλ¬Έμ— μ²΄μœ‘λ³΅μ„ 적절히 빌렀 μ΅œλŒ€ν•œ λ§Žμ€ 학생이 μ²΄μœ‘μˆ˜μ—…μ„ λ“€μ–΄μ•Ό ν•©λ‹ˆλ‹€.

전체 ν•™μƒμ˜ 수 n, μ²΄μœ‘λ³΅μ„ λ„λ‚œλ‹Ήν•œ ν•™μƒλ“€μ˜ λ²ˆν˜Έκ°€ λ‹΄κΈ΄ λ°°μ—΄ lost, μ—¬λ²Œμ˜ μ²΄μœ‘λ³΅μ„ κ°€μ Έμ˜¨ ν•™μƒλ“€μ˜ λ²ˆν˜Έκ°€ λ‹΄κΈ΄ λ°°μ—΄ reserveκ°€ λ§€κ°œλ³€μˆ˜λ‘œ μ£Όμ–΄μ§ˆ λ•Œ, μ²΄μœ‘μˆ˜μ—…μ„ 듀을 수 μžˆλŠ” ν•™μƒμ˜ μ΅œλŒ“κ°’μ„ return ν•˜λ„λ‘ solution ν•¨μˆ˜λ₯Ό μž‘μ„±ν•΄μ£Όμ„Έμš”.

 

🟠  μ œν•œμ‚¬ν•­

  • 전체 ν•™μƒμ˜ μˆ˜λŠ” 2λͺ… 이상 30λͺ… μ΄ν•˜μž…λ‹ˆλ‹€.
  • μ²΄μœ‘λ³΅μ„ λ„λ‚œλ‹Ήν•œ ν•™μƒμ˜ μˆ˜λŠ” 1λͺ… 이상 nλͺ… μ΄ν•˜μ΄κ³  μ€‘λ³΅λ˜λŠ” λ²ˆν˜ΈλŠ” μ—†μŠ΅λ‹ˆλ‹€.
  • μ—¬λ²Œμ˜ μ²΄μœ‘λ³΅μ„ κ°€μ Έμ˜¨ ν•™μƒμ˜ μˆ˜λŠ” 1λͺ… 이상 nλͺ… μ΄ν•˜μ΄κ³  μ€‘λ³΅λ˜λŠ” λ²ˆν˜ΈλŠ” μ—†μŠ΅λ‹ˆλ‹€.
  • μ—¬λ²Œ 체윑볡이 μžˆλŠ” ν•™μƒλ§Œ λ‹€λ₯Έ ν•™μƒμ—κ²Œ μ²΄μœ‘λ³΅μ„ λΉŒλ €μ€„ 수 μžˆμŠ΅λ‹ˆλ‹€.
  • μ—¬λ²Œ μ²΄μœ‘λ³΅μ„ κ°€μ Έμ˜¨ 학생이 μ²΄μœ‘λ³΅μ„ λ„λ‚œλ‹Ήν–ˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λ•Œ 이 학생은 μ²΄μœ‘λ³΅μ„ ν•˜λ‚˜λ§Œ λ„λ‚œλ‹Ήν–ˆλ‹€κ³  κ°€μ •ν•˜λ©°, 남은 체윑볡이 ν•˜λ‚˜μ΄κΈ°μ— λ‹€λ₯Έ ν•™μƒμ—κ²ŒλŠ” μ²΄μœ‘λ³΅μ„ λΉŒλ €μ€„ 수 μ—†μŠ΅λ‹ˆλ‹€.

 

🟑  μž…μΆœλ ₯ 예

n lost reserve return
5 [2, 4] [1, 3, 5] 5
5 [2, 4] [3] 4
3 [3] [1] 2

 

🟒  μž…μΆœλ ₯ 예 μ„€λͺ…

예제 #1
1번 학생이 2번 ν•™μƒμ—κ²Œ μ²΄μœ‘λ³΅μ„ 빌렀주고, 3번 ν•™μƒμ΄λ‚˜ 5번 학생이 4번 ν•™μƒμ—κ²Œ μ²΄μœ‘λ³΅μ„ 빌렀주면 학생 5λͺ…이 μ²΄μœ‘μˆ˜μ—…μ„ 듀을 수 μžˆμŠ΅λ‹ˆλ‹€.

예제 #2
3번 학생이 2번 ν•™μƒμ΄λ‚˜ 4번 ν•™μƒμ—κ²Œ μ²΄μœ‘λ³΅μ„ 빌렀주면 학생 4λͺ…이 μ²΄μœ‘μˆ˜μ—…μ„ 듀을 수 μžˆμŠ΅λ‹ˆλ‹€.

 

πŸ”΅  μ½”λ“œ

 
function solution(n, lost, reserve) {
    const students = {};
    let answer = 0;
    for (let i = 1; i <= n; i++) {
        students[i] = 1;
    }
    
    lost.forEach(number => students[number] -= 1);
    reserve.forEach(number => students[number] += 1);

    for (let i = 1; i <= n; i++) {
        if (students[i] === 2 && students[i-1] === 0) {
            students[i-1]++;
            students[i]--;
        } else if (students[i] === 2 && students[i+1] === 0) {
            students[i+1]++;
            students[i]--;
        }
    }
    
    for (let key in students) {
        if (students[key] >= 1) {
            answer++;
        }
    }
    return answer;
}

 

μ €μž‘μžν‘œμ‹œ

'Programmers' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[ 1단계 ] 두 개 λ½‘μ•„μ„œ λ”ν•˜κΈ°  (0) 2022.08.04
[ 1단계 ] 둜또의 졜고 μˆœμœ„μ™€ μ΅œμ € μˆœμœ„  (0) 2022.08.04
[ 1단계 ] 크레인 μΈν˜•λ½‘κΈ° κ²Œμž„  (0) 2022.08.04
[ 1단계 ] λͺ¨μ˜κ³ μ‚¬  (0) 2022.08.04
[ 1단계 ] K번째 수  (0) 2022.07.25
    'Programmers' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
    • [ 1단계 ] 두 개 λ½‘μ•„μ„œ λ”ν•˜κΈ°
    • [ 1단계 ] 둜또의 졜고 μˆœμœ„μ™€ μ΅œμ € μˆœμœ„
    • [ 1단계 ] 크레인 μΈν˜•λ½‘κΈ° κ²Œμž„
    • [ 1단계 ] λͺ¨μ˜κ³ μ‚¬
    Design-loving front-end engineer
    Design-loving front-end engineer
    λ””μžμΈμ— 관심이 λ§Žμ€ λͺ¨λ°”일 μ•± μ—”μ§€λ‹ˆμ–΄ Ryongμž…λ‹ˆλ‹€.

    ν‹°μŠ€ν† λ¦¬νˆ΄λ°”