πŸ… ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ 120956 : μ˜Ήμ•Œμ΄ - Javascript

μ•Œκ³ λ¦¬μ¦˜ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€

문제 μ„€λͺ…

λ¨Έμ“±μ΄λŠ” νƒœμ–΄λ‚œ 지 6κ°œμ›” 된 μ‘°μΉ΄λ₯Ό 돌보고 μžˆμŠ΅λ‹ˆλ‹€. μ‘°μΉ΄λŠ” 아직 "aya", "ye", "woo", "ma" λ„€ 가지 λ°œμŒμ„ μ΅œλŒ€ ν•œ λ²ˆμ”© μ‚¬μš©ν•΄ μ‘°ν•©ν•œ(이어 뢙인) λ°œμŒλ°–μ— ν•˜μ§€ λͺ»ν•©λ‹ˆλ‹€. λ¬Έμžμ—΄ λ°°μ—΄ babbling이 λ§€κ°œλ³€μˆ˜λ‘œ μ£Όμ–΄μ§ˆ λ•Œ, λ¨Έμ“±μ΄μ˜ μ‘°μΉ΄κ°€ λ°œμŒν•  수 μžˆλŠ” λ‹¨μ–΄μ˜ 개수λ₯Ό returnν•˜λ„λ‘ solution ν•¨μˆ˜λ₯Ό μ™„μ„±ν•΄μ£Όμ„Έμš”.


μ œν•œμ‚¬ν•­

  • 1 ≀ babbling의 길이 ≀ 100
  • 1 ≀ babbling[i]의 길이 ≀ 15
  • babbling의 각 λ¬Έμžμ—΄μ—μ„œ "aya", "ye", "woo", "ma"λŠ” 각각 μ΅œλŒ€ ν•œ λ²ˆμ”©λ§Œ λ“±μž₯ν•©λ‹ˆλ‹€.
    • 즉, 각 λ¬Έμžμ—΄μ˜ κ°€λŠ₯ν•œ λͺ¨λ“  λΆ€λΆ„ λ¬Έμžμ—΄ μ€‘μ—μ„œ "aya", "ye", "woo", "ma"κ°€ ν•œ λ²ˆμ”©λ§Œ λ“±μž₯ν•©λ‹ˆλ‹€.
  • λ¬Έμžμ—΄μ€ μ•ŒνŒŒλ²³ μ†Œλ¬Έμžλ‘œλ§Œ 이루어져 μžˆμŠ΅λ‹ˆλ‹€.

μž…μΆœλ ₯ 예

babblingresult
["aya", "yee", "u", "maa", "wyeoo"]1
["ayaye", "uuuma", "ye", "yemawoo", "ayaa"]3
  • 예제 #1
    ["aya", "yee", "u", "maa", "wyeoo"]μ—μ„œ λ°œμŒν•  수 μžˆλŠ” 것은 "aya"λΏμž…λ‹ˆλ‹€. λ”°λΌμ„œ 1을 returnν•©λ‹ˆλ‹€

  • 예제 #2
    ["ayaye", "uuuma", "ye", "yemawoo", "ayaa"]μ—μ„œ λ°œμŒν•  수 μžˆλŠ” 것은 "aya" + "ye" = "ayaye", "ye", "ye" + "ma" + "woo" = "yemawoo"둜 3κ°œμž…λ‹ˆλ‹€. λ”°λΌμ„œ 3을 returnν•©λ‹ˆλ‹€.


μœ μ˜μ‚¬ν•­

λ„€ 가지λ₯Ό λΆ™μ—¬ λ§Œλ“€ 수 μžˆλŠ” 발음 μ΄μ™Έμ—λŠ” μ–΄λ–€ λ°œμŒλ„ ν•  수 μ—†λŠ” κ²ƒμœΌλ‘œ κ·œμ •ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ "woowo"λŠ” "woo"λŠ” λ°œμŒν•  수 μžˆμ§€λ§Œ "wo"λ₯Ό λ°œμŒν•  수 μ—†κΈ° λ•Œλ¬Έμ— ν•  수 μ—†λŠ” λ°œμŒμž…λ‹ˆλ‹€.


풀이 κ³Όμ •

κ·Έλƒ₯ λ³΄μ΄λŠ” λŒ€λ‘œ 발음 κ°€λŠ₯ν•œ 단어λ₯Ό μ œκ±°ν•˜λŠ” 방식을 μ‚¬μš©ν•˜λ©΄ μ˜ˆμ œμ— μžˆλŠ” "wyeoo"λ₯Ό μ²˜λ¦¬ν•  λ•Œ "ye"λ₯Ό μ œκ±°ν•˜κ³ , κ·Έ λ‹€μŒ "woo"λ₯Ό μ œκ±°ν•΄ 발음이 κ°€λŠ₯ν•˜λ‹€κ³  μ²˜λ¦¬ν•˜κΈ° λ•Œλ¬Έμ— 단어λ₯Ό μœ μ§€ν•œ μ±„λ‘œ λͺ¨λ‘ 발음이 κ°€λŠ₯ν•œμ§€ ν™•μΈν•΄μ•Όν•©λ‹ˆλ‹€.

μ œκ°€ μƒκ°ν•œ ν•΄κ²° 방법은 λ‹¨μ–΄λŠ” κ·ΈλŒ€λ‘œ 두고, λ‹¨μ–΄μ˜ 길이만 κ΅¬ν•΄μ„œ 발음이 κ°€λŠ₯ν•  경우 길이λ₯Ό 쀄여 길이가 0이 되면 발음이 κ°€λŠ₯ν•œ 단어라고 μ²˜λ¦¬ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. 문제 쑰건 쀑 λͺ¨λ“  λ°œμŒμ€ ν•œλ²ˆμ”©λ§Œ κ°€λŠ₯ν•˜λ‹€κ³  ν–ˆκΈ° λ•Œλ¬Έμ— μ—¬λŸ¬λ²ˆ ν¬ν•¨λ˜λŠ” κ²½μš°λŠ” μƒκ°ν•˜μ§€ μ•Šμ•„λ„ λ©λ‹ˆλ‹€.

//μ‘°μΉ΄κ°€ κ°€λŠ₯ν•œ 발음 λͺ©λ‘
const pronunciations = ['aya', 'ye', 'woo', 'ma'];
 
function solution(babbling) {
  let answer = 0;
 
  for (const word of babbling) {
    //남은 λ‹¨μ–΄μ˜ 길이
    let remain = word.length;
 
    for (const pronunce of pronunciations) {
      //κ°€λŠ₯ν•œ 발음이 ν¬ν•¨λ˜λ©΄ ν•΄λ‹Ή 발음의 길이만큼 남은 길이λ₯Ό μ€„μž„
      if (word.includes(pronunce)) {
        remain -= pronunce.length;
      }
    }
 
    //남은 길이가 μ—†μœΌλ©΄ 발음 κ°€λŠ₯ν•œ 단어
    if (remain === 0) {
      answer++;
    }
  }
  return answer;
}