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

ERror.ASER·2020년 7월 20일
0

프로그래머스

목록 보기
8/54
post-thumbnail

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


문제 설명

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

제한사항

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

입출력 예

입출력 예 #1

'p'의 개수 2개, 'y'의 개수 2개로 같으므로 true를 return 합니다.

입출력 예 #2

'p'의 개수 1개, 'y'의 개수 2개로 다르므로 false를 return 합니다.


풀이

#include <string>
#include <iostream>

using namespace std;

bool solution(string s)
{
    bool answer;
    int pNum = 0, yNum = 0;
    for(int i=0;i<s.length();i++){
        if(s[i] == 'P' || s[i] == 'p') pNum++;
        if(s[i] == 'Y' || s[i] == 'y') yNum++;
    }
    if(pNum == yNum) answer = true;
    else answer = false;
    return answer;
}

주어진 string s의 문자열 처음부터 끝까지 for문을 이용해 접근하면서 p와 y가 있을때마다 해당 변수들을 1씩 더해준다.
for문이 다 끝난 후에는 p의 개수와 y의 개수를 비교하여 같으면 true, 다르면 false를 해준다.

    if(pNum == yNum) answer = true;
    else answer = false;
    return answer;

나는 p의 개수와 y의 개수를 비교하는 것을 if문으로 표현해주었지만 취향에 따라 한줄로 표현도 가능하다.

    return pNum == yNum;

둘의 숫자가 같으면 true를 return하고 다르면 false를 return한다.

오류

Q ) ''대신에 ""를 쓰면 에러가 난다. 왜 그럴까?

A)

profile
지우의 블로그

0개의 댓글