[ JavaScript ์•Œ๊ณ ๋ฆฌ์ฆ˜ (ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค)] ๋ฌธ์ž์—ด ๋‚ด p์™€ y์˜ ๊ฐœ์ˆ˜

2023. 8. 14. 23:35ใ†5. Algorithm

  • ๋ฌธ์ž์—ด ๋‚ด p์™€ y์˜ ๊ฐœ์ˆ˜

 

1. ๋ฌธ์ œ์„ค๋ช…

๋Œ€๋ฌธ์ž์™€ ์†Œ๋ฌธ์ž๊ฐ€ ์„ž์—ฌ์žˆ๋Š” ๋ฌธ์ž์—ด s๊ฐ€ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. s์— 'p'์˜ ๊ฐœ์ˆ˜์™€ 'y'์˜ ๊ฐœ์ˆ˜๋ฅผ ๋น„๊ตํ•ด ๊ฐ™์œผ๋ฉด True, ๋‹ค๋ฅด๋ฉด False๋ฅผ return ํ•˜๋Š” solution๋ฅผ ์™„์„ฑํ•˜์„ธ์š”. 'p', 'y' ๋ชจ๋‘ ํ•˜๋‚˜๋„ ์—†๋Š” ๊ฒฝ์šฐ๋Š” ํ•ญ์ƒ True๋ฅผ ๋ฆฌํ„ดํ•ฉ๋‹ˆ๋‹ค. ๋‹จ, ๊ฐœ์ˆ˜๋ฅผ ๋น„๊ตํ•  ๋•Œ ๋Œ€๋ฌธ์ž์™€ ์†Œ๋ฌธ์ž๋Š” ๊ตฌ๋ณ„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด s๊ฐ€ "pPoooyY"๋ฉด true๋ฅผ returnํ•˜๊ณ  "Pyy"๋ผ๋ฉด false๋ฅผ returnํ•ฉ๋‹ˆ๋‹ค.

 

2. ์ž…์ถœ๋ ฅ ์˜ˆ

s answer
"pPoooyY" true
"Pyy" false

3. ์ œํ•œ์‚ฌํ•ญ

  • ๋ฌธ์ž์—ด s์˜ ๊ธธ์ด : 50 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜
  • ๋ฌธ์ž์—ด s๋Š” ์•ŒํŒŒ๋ฒณ์œผ๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

 

4. ์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

 

  • ์ž…์ถœ๋ ฅ ์˜ˆ #1
    'p'์˜ ๊ฐœ์ˆ˜ 2๊ฐœ, 'y'์˜ ๊ฐœ์ˆ˜ 2๊ฐœ๋กœ ๊ฐ™์œผ๋ฏ€๋กœ true๋ฅผ return ํ•ฉ๋‹ˆ๋‹ค.
  • ์ž…์ถœ๋ ฅ ์˜ˆ #2
    'p'์˜ ๊ฐœ์ˆ˜ 1๊ฐœ, 'y'์˜ ๊ฐœ์ˆ˜ 2๊ฐœ๋กœ ๋‹ค๋ฅด๋ฏ€๋กœ false๋ฅผ return ํ•ฉ๋‹ˆ๋‹ค.


[ ๋‚ด๊ฐ€ํ•œ ๋ฌธ์ œ ํ’€์ด ]

function solution(s) {
  s = s.toUpperCase();
  let P_count = 0;
  let Y_count = 0;
  for (let i = 0; i < s.length; i++) {
    if (s[i] === 'P') {
      P_count++;
    } else if (s[i] === 'Y') {
      Y_count++;
    }
  }
  if (P_count === Y_count || (P_count === 0 && Y_count === 0)) {
    return true;
  } else {
    return false;
  }
}

+)  ์ฝ”๋“œ์— ์ฃผ์„์„ ๋”ํ•œ๊ฒƒ. 

function solution(s) {
    // ๋Œ€๋ฌธ์ž๋กœ ๋ณ€๊ฒฝ
    s = s.toUpperCase(); 
    // // P_count์™€ Y_count๋ผ๋Š” ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๊ณ  0์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ณ€์ˆ˜๋“ค์€ s์—์„œ P์™€ Y์˜ ๊ฐœ์ˆ˜๋ฅผ ์ €์žฅ
    let P_count = 0;
    let Y_count = 0;
    // for๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ s์˜ ๋ชจ๋“  ๋ฌธ์ž๋ฅผ ์ˆœํšŒ
    for (let i = 0; i < s.length; i++) {
        // ๋งŒ์•ฝ s์˜ i๋ฒˆ์งธ ๋ฌธ์ž๊ฐ€ 'P'๋ผ๋ฉด, P_count๋ฅผ 1 ์ฆ๊ฐ€์‹œํ‚ต๋‹ˆ๋‹ค.
      if (s[i] === 'P') {
        P_count++;
        // ๋งŒ์•ฝ s์˜ i๋ฒˆ์งธ ๋ฌธ์ž๊ฐ€ 'Y'๋ผ๋ฉด, Y_count๋ฅผ 1 ์ฆ๊ฐ€์‹œํ‚ต๋‹ˆ๋‹ค.
      } else if (s[i] === 'Y') {
        Y_count++;
      }
    }
    // if๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ P_count์™€ Y_count๊ฐ€ ๊ฐ™๊ฑฐ๋‚˜, ๋‘˜ ๋‹ค 0์ด๋ฉด true๋ฅผ ๋ฆฌํ„ดํ•ฉ๋‹ˆ๋‹ค.
    if (P_count === Y_count || (P_count === 0 && Y_count === 0)) {
      return true;
      // ๊ทธ๋ ‡์ง€์•Š์œผ๋ฉด false
    } else {
      return false;
    }
  }

JS๋ฌธ๋ฒ• 1์ฃผ์ฐจ ์ˆ™์ œ๋กœ ๋‚˜์˜จ ๋ฌธ์ œ๋ผ ํ’€์ด์˜์ƒ๋„ ์žˆ์—ˆ๋‹ค. ์•„๋ž˜์ฒ˜๋Ÿผ ํ’€์–ด๋ณด๋‹ˆ ์กฐ๊ธˆ๋” ์‰ฌ์šด๋ฐฉ๋ฒ•์ด ๋˜์—ˆ๋‹ค. 

  function solution(s) {
    var answer = true;

    // 1. ๋Œ€๋ฌธ์ž๋กœ ํ†ต์ผ 
   s=s.toUppercase(); 

    // 2. for๋ฌธ์„ ํ†ตํ•ด์„œ ๋ฌธ์ž์—ด ์š”์†Œ ํ•˜๋‚˜ํ•˜๋‚˜์”ฉ์„ ๋น„๊ต
     // 2-1. p,y ๋น„๊ต
   var num = 0;

   for (var i=0; i<s.length; i++) {
   // ์—ฌ๊ธฐ์—์„œ ๋น„๊ต 
   if(s[i] === "P") {
   num++;
   }
   
   if (s[i] === "Y") {
    num--;
   }
}

   if ( num === 0 ) {
    answer = true;
   } else {
    answer = false;
   }
}