반응형

 

프로그래머스의 문자열 내 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

+ Recent posts