๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Algorithm

[Algorithm] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค Lv.1 : ๋ฌธ์ž์—ด ๋‚ด p์™€ y์˜ ๊ฐœ์ˆ˜

by ์ฝ”๋”ฉ๊ณต์ฑ… 2022. 11. 3.
๋ฐ˜์‘ํ˜•

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

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

์˜ˆ๋ฅผ ๋“ค์–ด s๊ฐ€ "pPoooyY"๋ฉด true๋ฅผ returnํ•˜๊ณ  "Pyy"๋ผ๋ฉด false๋ฅผ returnํ•ฉ๋‹ˆ๋‹ค.


์ œํ•œ ์กฐ๊ฑด

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


์ž…์ถœ๋ ฅ ์˜ˆ

s answer
"pPoooyY" true
"Pyy" false

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


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


๋ฌธ์ œ ํ’€์ด

s ๋ฌธ์ž์—ด์— p ๋˜๋Š” P๊ฐ€ ํฌํ•จ๋˜๋ฉด cnt ๊ฐ’์„ ๊นŽ๊ณ , y ๋˜๋Š” Y๊ฐ€ ํฌํ•จ๋˜๋ฉด ๋”ํ•ด์ฃผ๋Š” ์‹์œผ๋กœ "pPoooyY"๊ฐ€ ๋“ค์–ด๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ์—๋Š” cnt ๊ฐ’์ด +2๊ฐ€ ๋˜์—ˆ๋‹ค๊ฐ€ -1๋กœ ์ค„์–ด๋“ค์–ด ๊ฒฐ๊ณผ๊ฐ’์ด 1, ์ฆ‰ true๊ฐ€ ๋œ๋‹ค. ๋ฐ˜๋Œ€์˜ ๊ฒฝ์šฐ๋Š” -1์ด ๋˜๊ธฐ ๋•Œ๋ฌธ์— false๊ฐ€ ๋œ๋‹ค.

๊ฒฐ๊ณผ์ ์œผ๋กœ "pPoooyY"๋ฉด true๋ฅผ returnํ•˜๊ณ  "Pyy"๋ผ๋ฉด false๋ฅผ returnํ•˜๊ฒŒ ๋œ๋‹ค.

#include <string>
#include <iostream>
using namespace std;

bool solution(string s)
{
    bool answer = true;

    int cnt = 0;
    
    for(int i=0; i<s.length(); i++)
        if(s[i] == 'p' || s[i] == 'P') cnt++;
         else if(s[i] == 'y' || s[i] == 'Y') cnt--;
        
        return cnt ? false : true;
    

    return answer;
}

๋‹ค๋ฅธ ํ’€์ด ๋ฐฉ์‹

์ถœ์ฒ˜ : ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์Šค์ฟจ

p, P๊ฐ€ ํฌํ•จ๋˜๋ฉด int p๊ฐ’์„ ์ฆ๊ฐ€์‹œํ‚ค๊ณ , y, Y๊ฐ€ ํฌํ•จ๋˜๋ฉด int y๊ฐ’์„ ์ฆ๊ฐ€์‹œ์ผœ ๊ฒฐ๊ณผ์ ์œผ๋กœ p์™€ y๊ฐ€ ๊ฐ™์€ ๊ฐ’์ผ ๋•Œ์— true๋ฅผ ๋ฐ˜ํ™˜์‹œํ‚จ๋‹ค.

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#include <string.h>

bool solution(string s)
{
    int p = 0;
    int y = 0;
    for (int i = 0; i < s.length(); i++) {
        if (s[i] == 'p' || s[i] == 'P')
            p++;
        else if (s[i] == 'y' || s[i] == 'Y')
            y++;
    }
    return p == y;
}
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€


Reference Book

JavaScript
HTML
CSS
๊ด‘๊ณ  ์ค€๋น„์ค‘์ž…๋‹ˆ๋‹ค.