카테고리 없음
프로그래머스 : 문자열 내 p와 y의 개수
개린이다
2023. 1. 27. 05:26
1, 내가 푼 것
function solution(s){
var answer = true;
var arr = [...s];
var numP = 0;
var numY = 0;
// [실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
for(var i = 0; i < arr.length; i++){
if(arr[i] == "p" || arr[i] == "P"){
numP++;
}
if(arr[i] == "y" || arr[i] == "Y"){
numY++;
}
}
if(numP !== numY){
answer = false;
}
//당연히 틀렸음 문자열은 배열이 아님
return answer;
}
- 얼레벌레 풀긴 했지만, 내가 생각한 방법을 실행시키기 위해 mdn, 구글링을 이용해서 푼 첫 문제!
- 이렇게해서 언제 ㅋㅋㅋ... 준비가 되나 싶지만 먼가 해낸 것 같아 기분이 좋다
- 문자열을 배열로 만드는 방법을 배움!
[...문자열명]
2. 다른 사람들 풀이
- 와, 이건 진짜 똑똑한 사람들이 많았음
1) -님
function numPY(s){
//함수를 완성하세요
return s.toUpperCase().split("P").length === s.toUpperCase().split("Y").length;
}
// 아래는 테스트로 출력해 보기 위한 코드입니다.
console.log( numPY("pPoooyY") )
console.log( numPY("Pyy") )
- 일단 소문자와 대문자가 구분되지 않기 때문에, 나처럼 두 개를 굳이 다 쓰는 것보다는
toUpperCase()를 이용하여 문자를 하나로 맞추고 갯수를 세는 경우가 많았다!
- 그리고 위에처럼 하면, 걍 저기서 true와 false를 뽑아주니까 굳이 true와 false를 쓸 필요가 없음!! 이건 진짜 지혜다
2)
function numPY(s) {
return s.match(/p/ig).length == s.match(/y/ig).length;
}
// 아래는 테스트로 출력해 보기 위한 코드입니다.
console.log( numPY("pPoooyY") )
console.log( numPY("Pyy") )
- match 에 length 를 붙일 수 있다더라.. 일단 match 부터 몰랐기 때문에 ㅋㅋㅋㅋ ㅜ 새로운 거 알아갑니다
- 대신 이거는 p와y가 둘 다 없을 때 오류가 난다고 한다. 이에대한 댓글 정보
이렇게 예외처리를 해줘야 한다는 점!
3) 문건우님
function solution(s){
return [...s.toLowerCase()].reduce((acc, cur) => {
if(cur ==='p') return acc + 1;
else if(cur ==='y') return acc - 1;
return acc;
}, 0) ? false : true;
}
- 이것도 신기하고? 좋았음!!
- 계산을 통해 false와 true를 할 수 있다니..생각도 못해봄
//다들 넘 똑똑하시다 나두 똑똑해지고싶어라...