프로그래머스의 문자열 내 p와 y의 개수를 찾는 문제이다. 프로그래머스는 내용 전체를 가져다 쓰는 것을 힘들게 잡기 때문에 설명으로 대체하겠다. s에 input 데이터로 아래와 같은 값들이 들어오고, 정답으로 true나 false boolean 값을 리턴하는 문제이다. s = "pPoooyY"가 들어왔을 때 소문자 p, y와 대문자 P, Y는 같은 계산 한다. 즉 1번은 pP와 yY 가 2개씩 같으므로 TRUE를 반환하고 PyY는 P와 yY로 1 :2 이기 때문에 FALSE를 반환하다.
로직 생각
1. x의 개수와 y의 개수를 변수에 카운트를 해준다.
2. 문자열 s 를 slice 함수를 이용하여 나누어준다.
3. 반복문을 이용하여 n 즉 각각의 문자를 반복하면서 돌고 p 또는 P일 때 x의 카운트를 하나 올려주고,
4. y 또는 Y 일 때 y의 카운트를 하나 올려준다.
5. 카운트 x와 카운트 y 가 같으면 answer로 true 반환
6. 다르면 false 반환
function solution(s){
let x = 0;
let y = 0;
let n = s.slice();
for(let i = 0; i < n.length; i++)
{
if(n[i] == "p" || n[i] == "P")
{
x++;
}
if(n[i] == "y" || n[i] == "Y")
{
y++;
}
}
console.log(x);
console.log(y);
if(y == x)
{
answer = true;
}
else {
answer = false;
}
return answer;
}
런타임이 2.5ms 가 나왔다. for문과 if 문을 많이 썼기 때문에 함수내엣 동작 시간이 좀 걸린 것으로 예상된다. 여러 내장 함수들을 이용하여 런타임을 줄여 보아야겠다.
'프로그래머스 > LV1' 카테고리의 다른 글
x만큼 간격이 있는 n개의 숫자 (0) | 2023.07.08 |
---|---|
프로그래머스 LV1 - 약수의 합 (0) | 2023.07.07 |