본문 바로가기
알고리즘/프로그래머스

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

by 며루치꽃 2020. 12. 16.

1. 문제

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

 

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

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

programmers.co.kr

2. 내가 생각했던 풀이과정

 

첫 번째 풀이 과정

1) 처음에는 문자열을 파싱하여, 각 문자를 p,y 가 들어있으면 각각 p,y 에 count를 늘린다

2) count 비교시 같으면 true를 반환 다를시 false를 반환

3) 문자열 입력 제한

 

두 번째 풀이 과정

1) 문제를 간단히 lower 함수를 이용하여 대소문자와 구별없이 소문자 p, y 에 대해 count()를 이용하여 찾는다.

2) count 비교시 같으면 true를 반환 다를시 false를 반환

 

3. 나의 풀이 

 

첫 번째 풀이

def solution(s):
    pcount = 0
    ycount = 0
    word = s.lower()
    if len(word) < 50:
        for i in range(len(word)):
            if(word[i] == 'p'):
                pcount += 1
            elif(word[i] == 'y'):
                ycount += 1
        if(pcount == ycount):
            return True
        else:
            return False

두 번째 풀이

def solution(s):
    answer = True
    lower = s.lower()
    pcount = lower.count('p')
    ycount = lower.count('y')

    if (pcount == ycount):
        return True
    else:
        return False

 

4. 다른 사람의 풀이

def numPY(s):
    return s.lower().count('p') == s.lower().count('y')

 

5. 새로 알게된 점

 

len(문자열)

len 함수는 매개변수로 들어온 문자열의 길이 를 반환합니다. 즉, 내부에 있는 문자의 개수(공백포함)을 계산해서 반환해주는 함수입니다.

 

string.count(self, x, __start, __end) 함수 설명

count 함수는 문자열에서 쓰이는 메서드 입니다. count 함수는 문자열 내부에서 특정 문자, 혹은 문자열이 포함 되어있는지 계산해서 반환해주는 함수 입니다. 

.count(self, x, __start, __end)

 

self는 무시하셔도 좋습니다. 심화적인 부분이라 생각이 들어서

x는 찾을 문자열, 찾을 문자를 넣으면 됩니다. __start, __end 는 예상하셨다 싶이 문자열의 어디부터 어디까지 내부에서 찾아달라는 뜻 입니다.

 

count의 특징

  • 대소문자를 구분합니다.
  • 찾을 x 에 문자 한개를 넣어도 가능하고 문자열을 넣어도 가능합니다.
  • __start, __end에 아무것도 넣지 않으면 문자열 처음부터 끝까지 탐색합니다.
  • 찾을 x의 범위는 __start <= x < __end 입니다. __start도 포함 __end 는 안 포함.

 

댓글