티스토리 뷰
코테이토 4기 알고리즘 스터디
- 11월 1주차 공통과제 A [프로그래머스] 문자열 내 p와 y의 개수
🎈 문제 및 해석
들어온 문자열 내에 있는 p와 y의 개수를 구하여라
1. 문자열 내에서 문자 찾기
2. 대소문자 구분 없이 함께 세기
위의 두가지를 할 수 있는지가 키포인트가 되겠다.
✨ 문제 풀이
# Python
def solution(s):
pCnt = yCnt=0;
for c in s:
if c == 'P' or c== 'p':
pCnt+=1
elif c == 'Y' or c == 'y':
yCnt+=1
return pCnt == yCnt
// JavaScript
function solution(s){
let pCnt=0; let yCnt=0;
for(let i=0; i<s.length; i++){
if(s[i]==='P'|| s[i]==='p') pCnt++;
else if(s[i]==='Y'||s[i]==='y') yCnt++;
}
return pCnt===yCnt;
}
문자열 하나하나를 배회하며 대소문자 p, y를 가려내어 별도의 변수(pCnt, yCnt)에 저장하였고, 둘의 값을 비교한 boolean 값을 리턴하였다.
🎯 추가
나는 단순히 사람이 생각하는 흐름 그대로 코드를 짯으나, 프로그래머스에 있는 다른 사람들의 풀이를 보니 모든 문자열을 대문자 혹은 소문자로 변경 후 문자의 개수를 세도록 짠 것을 보았다. 분명 전에는 나도 저렇게 풀었었는데, 한동안 안풀다 보니 감을 다 잃은 것 같아 조금 속상했다. 앞으로는 꾸준히 하도록 노력해보자..!
Javascript로 푸신 분 중에서 대소문자를 통일한 후 p를 기준으로 문자열을 split하여 나눠진 array의 길이와 y를 기준으로 문자열을 split하여 나눠진 array의 길이를 비교한 bool값을 출력하시는 분을 보았는데, 무릎을 탁 치게 만드는 풀이였던 것 같다..! reduce 메서드를 사용하여 구현한 사람도 있었고...이번엔 다른 사람들의 풀이를 보며 잘 알지 못했던 메서드들을 새로이 알게 되거나 다른 방향으로 문제를 해석할 수 있었던 것 같다. 비록 문제는 기초중에 기초일지 몰라도, 많이 배워가는 것 간다!
기억해둘 메서드
// JavaScript
// s는 문자열
s.toUpperCase()
# Python
# s는 문자열
s.upper()
s.count('p')
'Etc > Algorithm & Solving' 카테고리의 다른 글
[JS] 프로그래머스 - 서울에서 김서방 찾기 (0) | 2023.02.02 |
---|---|
[JS] 프로그래머스 - 숫자 찾기 (0) | 2023.02.02 |
[JS, Python] 약수의 합 구하기 (0) | 2022.10.08 |
[JS] 백준 4344 평균은 넘겠지 (0) | 2022.10.03 |
[JS] 백준 10818 최대 최소 구하기 (0) | 2022.10.03 |
Comments