プログラマlv 1解答:文字列中のpとyの個数
4035 ワード
プログラマlv 1解答:文字列中のpとyの個数
文字列sには大文字と小文字が含まれます.sで「p」と「y」の個数を比較し、「同じものが真であり、異なるものがfalseを返す」ソリューションを完了します.p"もyも存在しない場合、常にTrueが返されます.ただし、数字の比較では大文字と小文字は区別されません.
たとえば、sがpPooyyであればtrue、Pyyであればfalseを返します.
文字列sの長さ:50未満の自然数 文字列sはアルファベットのみからなる.
sanswer"pPoooyY"true"Pyy"false
I/O例1「p」が2つ、「y」が2つあるため、trueを返します.
I/O例#2'p'は1つ、yは2つあるのでfalseを返します.
問題の説明
文字列sには大文字と小文字が含まれます.sで「p」と「y」の個数を比較し、「同じものが真であり、異なるものがfalseを返す」ソリューションを完了します.p"もyも存在しない場合、常にTrueが返されます.ただし、数字の比較では大文字と小文字は区別されません.
たとえば、sがpPooyyであればtrue、Pyyであればfalseを返します.
せいげんじょうけん
I/O例
sanswer"pPoooyY"true"Pyy"false
I/O例説明
I/O例1「p」が2つ、「y」が2つあるため、trueを返します.
I/O例#2'p'は1つ、yは2つあるのでfalseを返します.
説明する
function solution(s) {
// 개수를 비교할 때 대소문자 구분이 없기 때문에 소문자로 통일
let splits = s.toLowerCase();
// 각 알파벳 카운트를 저장할 변수 설정
let p = 0;
let y = 0;
// 문자열을 검색하며 p와 y의 개수를 저장
for (let i = 0; i < splits.length; i++) {
if (splits[i] === "p") {
p++;
}
if (splits[i] === "y") {
y++;
}
}
// 카운트가 서로 같으면 true 아니라면 false 출력
if (p === y) {
return true;
} else {
return false;
}
}
// 스택을 통해서도 풀 수 있다.
// 문자열을 검색하며 해당 문자가 p이면 스택에 push() y라면 pop()을 한다.
// 문자열을 끝까지 검사한 뒤 스택이 비어있지 않다면 같지 않음으로 false, 비어있다면 true 출력
Reference
この問題について(プログラマlv 1解答:文字列中のpとyの個数), 我々は、より多くの情報をここで見つけました https://velog.io/@younghoss/프로그래머스-lv1-문제-풀이-문자열-내-p와-y의-개수テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol