본문 바로가기
프로그래머스 C++/Level.1

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

by yeni_0224 2023. 7. 8.
728x90
반응형
728x90

대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를 리턴합니다. 단, 개수를 비교할 때 대문자와 소문자는 구별하지 않습니다.

입출력 예시

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

bool solution(string s)
{
    bool answer = true;
    int pCount = 0;
    int yCount = 0;
    for(int i = 0; i < s.size(); i++)
    {
        if(s[i] == 'p' || s[i] == 'P') pCount++;
        else if(s[i] == 'y'|| s[i] == 'Y') yCount++;
    }
    if(pCount == 0 && yCount == 0) answer = false;
    if(pCount != yCount) answer = false;
    else if(pCount == yCount) answer = true;
    cout << "p = " << pCount;
    cout << "y = " << yCount;

    return answer;
}

p와 y의 갯수가 어떻게 뜨는지 확인하면서 문제를 풀었다.

p의 갯수, y의 갯수를 담는 변수를 각각 만들어줬다. 반복문으로 배열 안의 문자들과 p y 가 같은지 비교해주었다.

대문자와 소문자를 구별하지 않는다고 했기 때문에 p P y Y 이 두개 다 같이 일치하는지 비교해주었다. 

그 다음 각각의 갯수가 일치하는지, 불일치 하는지, 혹은 문자열 안에 없는지에 따라 각각의 bool 값을 출력하도록 했다.

 

정말 킹받는건 코드 실행할 때 맞다고 아이구 다 맞았네~ 하면서 막상 채점하면 꼭 일부가 틀렸다고 다시 풀라고 한다는 것이다. 정말 킹받는다. 약간 약올리는 느낌.

반응형

 

728x90
반응형