-
프로그래머스 : 문자열 내 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를 할 수 있다니..생각도 못해봄
//다들 넘 똑똑하시다 나두 똑똑해지고싶어라...