[프로그래머스] 문자열 내 p와 y의 개수 (Lv.1)


문제 링크


프로그래머스 - 문자열 내 p와 y의 개수


문제 설명


대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 ‘p’의 개수와 ‘y’의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. ‘p’, ‘y’ 모두 하나도 없는 경우는 같은 개수로 처리합니다.

단, 개수를 비교할 때 대문자와 소문자는 구별하지 않습니다.

제한사항

  • 문자열 s의 길이 : 50 이하의 자연수
  • 문자열 s는 알파벳으로만 이루어져 있습니다.


내 풀이


문자열을 순회하며 p/Py/Y의 개수를 각각 카운트한다. 두 개수가 같으면 true, 다르면 false를 반환한다.

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

bool solution(string s)
{
    int count_p = 0;
    int count_y = 0;

    for(char c : s)
    {
        if(c == 'p' || c == 'P') count_p++;
        else if(c == 'y' || c == 'Y') count_y++;
    }

    return count_p == count_y;
}


시간복잡도 분석


  • 문자열 순회: O(N), N = 문자열 길이 (최대 50)
  • 전체: O(N)

N ≤ 50이므로 사실상 제한 없이 통과 가능하다.


후기


이건 너무 쉬운 문제를 고른 것 같다… 이 문제는 약간 레벨 0 느낌..?