728x90
[ Level 1 ] 문자열 내 p와 y의 개수
구분
코딩테스트 연습 > 연습문제
풀이 요약
문자열 내의 원소 개수를 비교하는 문제
나의 풀이
function solution(s){
let cnt=0;
let lowerArr=s.toLowerCase().split("");
for (let x of lowerArr){
if(x==="p") cnt++
else if (x==="y") cnt--
}
return cnt===0? true :false
//return cnt===0 위와 같은 결과를 반환합니다.
}
- 문자열 s를 소문자로 변환하고 , 각 문자를 배열의 원소로 분리하기 위해 toLowerCase 메서드와 split 메서드를 사용했습니다.
- 반복문을 통해 각 원소를 검사하면서 p인 경우 cnt를 1 증가시키고 y인 경우 cnt를 1 감소 시킵니다.
- cnt가 0인경우는 p와 y의 개수가 동일하다는 의미이므로 true를 반환하고 그렇지 않은 경우 false를 반환합니다.
배운점
reduce 메서드를 사용하여 본 문제를 더 간결하게 풀이할 수 있습니다.
reduce는 누산기 기능을 하기 때문에 변수를 따로 선언하지 않아도 됩니다 !
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;
}
728x90
'코테 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 자연수 뒤집어 배열로 만들기 (0) | 2024.07.25 |
---|---|
[프로그래머스] 자릿수 더하기 (0) | 2024.07.25 |
[코딩 기초 트레이닝] 전국대회 선발고사 (3) | 2024.07.23 |
[코딩 기초 트레이닝] 배열 만들기 2 (3) | 2024.07.23 |
[코딩 기초 트레이닝] A 강조하기 (2) | 2024.07.18 |