🌠 문제

μˆ«μžμ™€ "Z"κ°€ κ³΅λ°±μœΌλ‘œ κ΅¬λΆ„λ˜μ–΄ λ‹΄κΈ΄ λ¬Έμžμ—΄μ΄ μ£Όμ–΄μ§‘λ‹ˆλ‹€. λ¬Έμžμ—΄μ— μžˆλŠ” μˆ«μžλ₯Ό μ°¨λ‘€λŒ€λ‘œ λ”ν•˜λ €κ³  ν•©λ‹ˆλ‹€. μ΄ λ•Œ "Z"κ°€ λ‚˜μ˜€λ©΄ λ°”λ‘œ μ „에 λ”ν–ˆλ˜ μˆ«μžλ₯Ό λΊ€λ‹€λŠ” λœ»μž…λ‹ˆλ‹€. μˆ«μžμ™€ "Z"둜 μ΄λ£¨μ–΄μ§„ λ¬Έμžμ—΄ sκ°€ μ£Όμ–΄μ§ˆ λ•Œ, λ¨Έμ“±μ΄κ°€ κ΅¬ν•œ κ°’을 return ν•˜λ„둝 solution ν•¨μˆ˜λ₯Ό μ™„μ„±ν•΄λ³΄μ„Έμš”.

🌠 μ œν•œμ‚¬ν•­

  • 1 ≤ s의 길이 ≤ 200
  • -1,000 < s의 μ›μ†Œ 쀑 숫자 < 1,000
  • sλŠ” 숫자, "Z", 곡백으둜 이루어져 μžˆμŠ΅λ‹ˆλ‹€.
  • s에 μžˆλŠ” μˆ«μžμ™€ "Z"λŠ” μ„œλ‘œ 곡백으둜 κ΅¬λΆ„λ©λ‹ˆλ‹€.
  • μ—°μ†λœ 곡백은 주어지지 μ•ŠμŠ΅λ‹ˆλ‹€.
  • 0을 μ œμ™Έν•˜κ³ λŠ” 0으둜 μ‹œμž‘ν•˜λŠ” μˆ«μžλŠ” μ—†μŠ΅λ‹ˆλ‹€.
  • sλŠ” "Z"둜 μ‹œμž‘ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
  • s의 μ‹œμž‘κ³Ό λμ—λŠ” 곡백이 μ—†μŠ΅λ‹ˆλ‹€.
  • "Z"κ°€ μ—°μ†ν•΄μ„œ λ‚˜μ˜€λŠ” κ²½μš°λŠ” μ—†μŠ΅λ‹ˆλ‹€.

🌠 μž…μΆœλ ₯ 예

s result
"1 2 Z 3" 4
"10 20 30 40" 100
"10 Z 20 Z 1" 1
"10 Z 20 Z" 0
"-1 -2 -3 Z" -3

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

μž…μΆœλ ₯ 예 #1

  • λ³Έλ¬Έκ³Ό λ™μΌν•©λ‹ˆλ‹€.

μž…μΆœλ ₯ 예 #2

  • 10 + 20 + 30 + 40 = 100을 return ν•©λ‹ˆλ‹€.

μž…μΆœλ ₯ 예 #3

  • "10 Z 20 Z 1"μ—μ„œ 10 λ‹€μŒ Z, 20 λ‹€μŒ Z둜 10, 20이 μ§€μ›Œμ§€κ³  1만 λ”ν•˜μ—¬ 1을 return ν•©λ‹ˆλ‹€.

μž…μΆœλ ₯ 예 #4, #5

  • μ„€λͺ… μƒλž΅
  • β€» κ³΅μ§€ - 2022λ…„ 11μ›” 30일 μ œν•œμ‚¬ν•­ λ° ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€κ°€ μˆ˜μ •λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

🧞 풀이

function solution(s) {
    // λ¬Έμžμ—΄ sλ₯Ό 곡백 κΈ°μ€€μœΌλ‘œ λ‚˜λˆ  μš”μ†Œλ‘œ λ§Œλ“€μ–΄ λ°°μ—΄ 생성
    let array = s.split(" ");
    let answer_array = [];
    let answer = 0;
    
    // μƒˆλ‘œ μ„ μ–Έν•œ 배열에 Z일 λ•ŒλŠ” 기쑴의 μ›μ†Œλ₯Ό λΉΌκ³ , 숫자이면 좔가함
    while (array.length != 0) {
        let tmp = array.shift();
        if (tmp === "Z") {
            answer_array.pop();
        } else {
            answer_array.push(tmp);
        }
    };
    
    // λ°°μ—΄μ˜ λ¬Έμžμ—΄λ‘œ 된 μš”μ†Œλ“€ λͺ¨λ‘ μˆ«μžν˜•μœΌλ‘œ λ³€ν™˜
    let number_answer_array = answer_array.map(Number);

    // λ°°μ—΄μ˜ κ°’λ“€ ν•˜λ‚˜μ”© λΉΌμ„œ answer에 λ”ν•˜κΈ°
    while (number_answer_array.length != 0) {
        answer += number_answer_array.shift();
    }
    
    // μ •λ‹΅ 리턴
    return answer;
}

+ Recent posts