문제
대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를 리턴합니다. 단, 개수를 비교할 때 대문자와 소문자는 구별하지 않습니다.
예를 들어 s가 "pPoooyY"면 true를 return하고 "Pyy"라면 false를 return합니다.
https://school.programmers.co.kr/learn/courses/30/lessons/12916
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
내가 작성한 코드
function solution(str) {
let text = str.toUpperCase();
let countP = 0;
let countY = 0;
for (let i = 0; i < text.length; i++) {
if (text[i] == 'P') countP++;
if (text[i] == 'Y') countY++;
}
console.log(countP, countY);
return countP == countY;
}
var str = 'pPoooyY';
solution(str);
정답
코딩테스트 문제를 풀 땐, 생각해 둔 머리 속에 있는 로직을 주석으로 STEP을 정해놓은 후에 만드는 걸 추천
- 대문자로 통일
- for문을 통해서 문자열의 요소 하나하나씩을 비교
p, y와 비교: num을 늘리고 줄이면서 비교. num이 0이면 갯수가 같은거 - 개수 체크(p와 y의 개수가 같은지를 체크)
function solution(s){
var result = true;
s = s.toUpperCase();
var num = 0;
for(var i = 0; i < s.length; i++){
if(s[i] === 'P') num++; // p이면 갯수 더하기
if(s[i] === 'Y') num--; // y이면 갯수 빼기
}
result = (num === 0); // p, y 갯수가 같으면 0 (p가 많으면 양수, 반대 음수)
return result;
}
'JavaScript' 카테고리의 다른 글
숙제3 - 문자열 내 마음대로 정렬하기 (0) | 2023.05.28 |
---|---|
숙제2 - 반복문, 조건문 연습하기 (0) | 2023.05.28 |
클로저 (0) | 2023.05.28 |
Class (0) | 2023.05.28 |
비동기 작업의 동기적 표현 - Promise, Generator, Async/await (1) | 2023.05.28 |