[프로그래머스/C++] ㅡ LV1 - 문자열 내 p와 y의 개수
2021. 3. 13. 10:39ㆍ필요/코딩테스트(프로그래머스)
문제
programmers.co.kr/learn/courses/30/lessons/12916
풀이
#include <string>
#include <iostream>
using namespace std;
bool solution(string s)
{
bool answer = true;
int cntp=0, cnty=0;
for (int i=0; i<s.size(); i++) {
if (s[i] == 'p' || s[i] == 'P') cntp++;
if (s[i] == 'y' || s[i] == 'Y') cnty++;
}
if (cntp != cnty) answer = false;
return answer;
}
풀이
string은 각 인수를 통해 문자에 접근할 수 있기에, 나머지는 if문을 통해 p와 y의 개수를 찾아주면 된다.
+a
위 풀이에 앞서 string이 개별 문자를 참조하기 불가능한 줄 알고, string -> char 로 변환해서 문제를 해결했었다.
string.h 라이브러리를 통해 strcpy(a, b) 를 할 수 있다.
이는 char 배열로 만들어진 문자열을 복사하는 함수이다. b의 값이 a에 복사된다.
문자열을 char 배열로 바꿔주는 c_str() 매서드를 사용한다.
#include <string.h>
#include <iostream>
using namespace std;
bool solution(string s)
{
bool answer = true;
int cntp=0, cnty=0;
char ch[51];
strcpy(ch, s.c_str()); // 문자열 -> char 배열로 변환
for (int i=0; i<s.size(); i++) {
if (ch[i] == 'p' || ch[i] == 'P') cntp++;
if (ch[i] == 'y' || ch[i] == 'Y') cnty++;
}
if (cntp != cnty) answer = false;
return answer;
}
'필요 > 코딩테스트(프로그래머스)' 카테고리의 다른 글
[프로그래머스/C++] ㅡ LV1 - 문자열 내 마음대로 정렬하기 (0) | 2021.03.14 |
---|---|
[프로그래머스/C++] ㅡ LV1 - 문자열 내림차순으로 배치하기 (0) | 2021.03.14 |
[프로그래머스/C++] ㅡ LV1 - 두 정수 사이의 합 (0) | 2021.03.05 |
[프로그래머스/C++] ㅡ LV1 - 나누어 떨어지는 숫자 배열 (0) | 2021.03.05 |
[프로그래머스/C++] ㅡ LV1 - 같은 숫자는 싫어 (0) | 2021.03.03 |