1. 문제
programmers.co.kr/learn/courses/30/lessons/12916
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 는 안 포함.
- 참고
https://blockdmask.tistory.com/410 [개발자 지망생]
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 가운데 글자 가져오기 (0) | 2020.12.20 |
---|---|
[프로그래머스] 서울에서 김서방 찾기 (0) | 2020.12.19 |
[프로그래머스] 자연수 뒤집어 배열로 만들기 (0) | 2020.12.17 |
[프로그래머스] 문자열 다루기 기본 (0) | 2020.12.11 |
[프로그래머스] 두 정수 사이의 합 (0) | 2020.12.11 |
댓글