본문 바로가기

알고리즘 문제 풀이

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

programmers.co.kr/learn/courses/30/lessons/12916

 

코딩테스트 연습 - 문자열 내 p와 y의 개수

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

programmers.co.kr

먼저  JS 풀이입니다  

 

function solution(s){
    s = s.toLowerCase();
    const p = s.match(/p/g);
    const y = s.match(/y/g);
    
    if( p != null && y != null){
      if(p.length === y.length){
         return p.length === y.length;
      }
    }
    if( p == null && y == null) return true  
    return false;
}

match()함수를 이용해서  해결했는데   match()함수는  찾는 문자열이 존재하면  배열로 그값을 반환하고  만약 없다면  null을 반환 합니다  이 문제는 match()로 반환된  배열의 길이를 비교해서 해결했기 때문에  null이 반환된다면  길이를 잴수 없게 됩니다  따라서  null이 아니어야  길이를 비교하도록 조건을 넣어주었고   만약 둘다 null이라면 p와 y가  없는 것이기에  True를 반환하도록  코드를 짜주었습니다 

 

 

다음은 파이썬 풀이입니다  저는 아직은 파이썬이 훨씬 편하네요 

def solution(s):
    s = s.lower()
    p = s.count('p')
    y = s.count('y')
    if p == y :
        return True 
    
    return False