λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

μΉ΄ν…Œκ³ λ¦¬ μ—†μŒ

Lv 1. μˆ«μžμ—΄κ³Ό μ˜λ‹¨μ–΄

문제 

 

λ„€μ˜€μ™€ ν”„λ‘œλ„κ°€ μˆ«μžλ†€μ΄λ₯Ό ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. λ„€μ˜€κ°€ ν”„λ‘œλ„μ—κ²Œ 숫자λ₯Ό 건넬 λ•Œ 일뢀 자릿수λ₯Ό μ˜λ‹¨μ–΄λ‘œ λ°”κΎΌ μΉ΄λ“œλ₯Ό 건넀주면 ν”„λ‘œλ„λŠ” μ›λž˜ 숫자λ₯Ό μ°ΎλŠ” κ²Œμž„μž…λ‹ˆλ‹€.

λ‹€μŒμ€ 숫자의 일뢀 자릿수λ₯Ό μ˜λ‹¨μ–΄λ‘œ λ°”κΎΈλŠ” μ˜ˆμ‹œμž…λ‹ˆλ‹€.

  • 1478 → "one4seveneight"
  • 234567 → "23four5six7"
  • 10203 → "1zerotwozero3"

μ΄λ ‡κ²Œ 숫자의 일뢀 μžλ¦Ώμˆ˜κ°€ μ˜λ‹¨μ–΄λ‘œ λ°”λ€Œμ–΄μ‘Œκ±°λ‚˜, ν˜Ήμ€ λ°”λ€Œμ§€ μ•Šκ³  κ·ΈλŒ€λ‘œμΈ λ¬Έμžμ—΄ sκ°€ λ§€κ°œλ³€μˆ˜λ‘œ μ£Όμ–΄μ§‘λ‹ˆλ‹€. sκ°€ μ˜λ―Έν•˜λŠ” μ›λž˜ 숫자λ₯Ό return ν•˜λ„λ‘ solution ν•¨μˆ˜λ₯Ό μ™„μ„±ν•΄μ£Όμ„Έμš”.

 

μ œν•œ 사항

  • 1 ≤ s의 길이 ≤ 50
  • sκ°€ "zero" λ˜λŠ” "0"으둜 μ‹œμž‘ν•˜λŠ” κ²½μš°λŠ” 주어지지 μ•ŠμŠ΅λ‹ˆλ‹€.
  • return 값이 1 이상 2,000,000,000 μ΄ν•˜μ˜ μ •μˆ˜κ°€ λ˜λŠ” μ˜¬λ°”λ₯Έ μž…λ ₯만 s둜 μ£Όμ–΄μ§‘λ‹ˆλ‹€.
s result
"one4seveneight" 1478
"23four5six7" 234567
"2three45sixseven" 234567
"123" 123

 

 

(1) λ‚˜μ˜ 풀이 방법

function solution(s) {
    let answer = 0;
    
    s = s.replace(/zero/gi,'0')
    s = s.replace(/one/gi,'1');
    s = s.replace(/two/gi,'2');
    s = s.replace(/three/gi,'3');
    s = s.replace(/four/gi,'4');
    s = s.replace(/five/gi,'5');
    s = s.replace(/six/gi,'6');
    s = s.replace(/seven/gi,'7');
    s = s.replace(/eight/gi,'8');
    s = s.replace(/nine/gi,'9');

    console.log(s);
    answer = Number(s);
    return answer;

}

 

1. replace ν•¨μˆ˜λ₯Ό μ΄μš©ν•΄ μ˜μ–΄ λ¬Έμžμ—΄μ„ 숫자둜 λ³€κ²½ν•œλ‹€. 

2. Number ν•¨μˆ˜λ₯Ό μ΄μš©ν•΄ λ¬Έμžμ—΄μ„ 숫자둜 λ³€ν™˜ν•œλ‹€. 

 

→ ν’€μ΄λŠ” λ§žμ•˜μ§€λ§Œ replace ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜λŠ” 것 λ“± λŒ€λΆ€λΆ„μ˜ 풀이방식을 κ΅¬κΈ€λ§μœΌλ‘œ ν•΄κ²°ν•˜μ—¬, 풀이 μ½”λ“œμ— λŒ€ν•œ λͺ…ν™•ν•œ 이해가 ν•„μš”ν•˜λ‹€κ³  λŠκΌˆλ‹€. 

 

 

 

ν•΄κ²° λ°©μ•ˆ

 

(1) replace ν•¨μˆ˜μ— λŒ€ν•œ λͺ…ν™•ν•œ 이해

 

β€» replace 

- μ–΄λ–€ νŒ¨ν„΄μ— μΌμΉ˜ν•˜λŠ” 일뢀 λ˜λŠ” λͺ¨λ“  뢀뢄이 ꡐ체된 μƒˆλ‘œμš΄ λ¬Έμžμ—΄μ„ λ°˜ν™˜ν•˜λŠ” ν•¨μˆ˜ 

- νŠΉμ§•: μ •κ·œ ν‘œν˜„μ‹μœΌλ‘œ λ‚˜νƒ€λ‚΄μ§€ μ•Šμ„ 경우 첫 번째 λ¬Έμžμ—΄λ§Œ ꡐ체됨.

 

β€» str_text.replace(/찾을 λ¬Έμžμ—΄/gi, "λ³€κ²½ν•  λ¬Έμžμ—΄")
- 정해진 κ·œμΉ™μ„ ν™œμš©ν•΄ λͺ¨λ“  문자 λ³€ν™˜ κ°€λŠ₯

- 찾을 λ¬Έμžμ—΄μ€ λ”°μ˜΄ν‘œλ‘œ 묢지 μ•Šμ•„μ•Ό 함.

    * g : 전체 λͺ¨λ“  λ¬Έμžμ—΄ λ³€κ²½ (global)

    *  i : 영문 λŒ€μ†Œλ¬Έμž λ¬΄μ‹œ, λͺ¨λ‘ μΌμΉ˜ν•˜λŠ” νŒ¨ν„΄ 검색 (ignore)

 

 

(2) λ¬Έμžμ—΄μ„ 숫자둜 λ³€κ²½ν•˜λŠ” 방법에 λŒ€ν•œ 이해 

 

β€» Number(value)

- λ¬Έμžμ—΄μ΄λ‚˜ λ‹€λ₯Έ 값을 Number νƒ€μž…μœΌλ‘œ λ³€ν™˜.