코딩 뚝딱이

[프로그래머스] 연습문제 : 문자열 내 p와 y의 개수 [Python] 본문

알고리즘&코딩테스트/Python 코테

[프로그래머스] 연습문제 : 문자열 내 p와 y의 개수 [Python]

Desiree 이나 2023. 3. 24. 18:27

 LV2  < 문자열 내 p와 y의 개수 >

■ 문제 설명

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

 

■ 제한 조건

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

■ 입출력 예

s answer
"pPoooyY" true
"Pyy" false

■ 기본 제공 틀 (Python)

def solution(s):
    answer = True
    
    # [실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
    print('Hello Python')

    return True

                             ▼   A N S W E R                               


■ 내 풀이 설명 (Python)

우선 문제를 풀기 위해 필요한 파이썬 함수들에 대해서 먼저 알아보자.

------------------------------------------------------------------------------------------------------------------------------------------------------

▣ 파이썬 문자열 대소문자 변환 함수 : upper(), lower()

1. upper() : 모든 문자를 대문자로 변환해주는 함수

upper() 예제

 

2. lower() : 모든 문자를 소문자로 변환해주는 함수

lower() 예제

▣ count() : 문자열/튜플/리스트 등에서 찾고 싶은 요소(문자)의 개수를 찾을 수 있는 함수

사진 예제로 확인 고고 ~!

count() 함수 예제

↑↑ string1에 'h'는 'hello Python' 에 2번 들어가니까 결과는 2!

count() 함수 예제

↑↑ string2에 'o'는 'HELLo PYTHON' 에 1번 들어가니까 결과는 1!

 

------------------------------------------------------------------------------------------------------------------------------------------------------

위의 lower()과 count()함수를 이용하면 아래와 같이 코드를 짤 수 있다.

if s.lower().count("y") == s.lower().count("p"):     
# 문자열s를 다 소문자로 바꾼 후, 그 안의 'y'개수와 'p'의 개수가 같으면 True를 반환해줘
	return True

개수가 같으면 True를 반환하고,  다르다면 False를 반환해야하니까 아래의 답안처럼 else를 추가해서 코드를 짜면 된다.

 

 

■ 내 풀이 (Python)

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

 

 

- 끝 -