[프로그래머스] 문자열 내 p와 y의 개수

Mark·2022년 8월 8일
0
post-thumbnail

1. 문제 설명

대문자와 소문자가 섞여있는 문자열 s가 주어집니다. 
s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 
다르면 False를 return 하는 solution를 완성하세요. 
'p', 'y' 모두 하나도 없는 경우는 항상 True를 리턴합니다. 
단, 개수를 비교할 때 대문자와 소문자는 구별하지 않습니다.

예를 들어 s가 "pPoooyY"면 true를 return하고 
"Pyy"라면 false를 return합니다.

2. 제한사항

  • 문자열 s의 길이 : 50 이하의 자연수
  • 문자열 s는 알파벳으로만 이루어져 있습니다.

3. 입출력 예

sanswer
"pPoooyY"true
"Pyy"false

4. 문제 접근

1) 문자열에서 'p' 와 'P'를 찾아냄

  • 문자열은 하나씩 쪼개기
  • 쪼갠 문자들을 배열에 담기

2) for문 돌려서 arr에서 각 문자열 하나씩 추출

3) 추출한 문자가 'p' 이거나 'P'이면 p_array 리스트에 담기

4) 추출한 문자가 'y' 이거나 'Y' 이면 y_array 리스트에 담기

5) p_array와 y_array에 담긴 각 원소의 개수를 비교

6) p_array와 y_array의 원소에 개수가 같으면 true, 다르면 false

5. 문제 풀이에 필요한 개념

1) 논리 연산자 and, or

2) 조건문 if/else

3) 문자열 하나씩 배열에 담기 Array.from(문자열 변수)

4) 특정 배열에서 문자열 하나씩 꺼내는 for문

for (let answer of arr) {
	// arr에서 문자열을 하나씩 꺼내줌 
}

5) push 함수

[배열].push(element)
예) array.push(5)

6. 문제 풀이

1) 풀이1

function solution (s) {
    let arr = Array.from(s) // 문자열 쪼개서 arr에 원소 하나씩 담기 
    let p_array = []; 
    let y_array = [];

    for (let answer of arr) {
        console.log(answer)
        if(answer == 'p') {
            p_array.push(answer)
        } else if (answer == 'P') {
            p_array.push(answer)
        } 
    
        if(answer == 'y') {
            y_array.push(answer);
        } else if (answer == 'Y') {
            y_array.push(answer)
        }
        
    }
    
    // p가 담긴 원소의 개수와 y가 담긴 원소에 개수를 비교
    if (p_array.length == y_array.length) {
        return true // 원소의 개수가 서로 같으면 true
    } else {
        return false // 서로 다르면 false
    }

}

2) 풀이2

function solution (s) {
    let arr = Array.from(s) // 문자열 쪼개서 arr에 원소 하나씩 담기 
    let p_array = []; 
    let y_array = [];

    for (let answer of arr) {
        console.log(answer)
        if(answer == 'p' || answer == 'P') {
            p_array.push(answer)
        } else if (answer == 'y' || answer == 'Y') {
            y_array.push(answer)
        }
    }
    // p가 담긴 원소의 개수와 y가 담긴 원소에 개수를 비교
    if (p_array.length == y_array.length) {
        return true // 원소의 개수가 서로 같으면 true
    } else {
        return false // 서로 다르면 false
    }
}

문제 풀기(프로그래머스)

https://programmers.co.kr/learn/courses/30/lessons/12954

profile
개인 공부 정리

0개의 댓글