-
[ 프로그래머스 / JS ] Lv.1 문자열 내 p와 y의 개수Algorithm/프로그래머스 2022. 12. 29. 15:11반응형
대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를 리턴합니다. 단, 개수를 비교할 때 대문자와 소문자는 구별하지 않습니다.
예를 들어 s가 "pPoooyY"면 true를 return하고 "Pyy"라면 false를 return합니다.
제한사항
- 문자열 s의 길이 : 50 이하의 자연수
- 문자열 s는 알파벳으로만 이루어져 있습니다.
풀이
function solution(s){ if (s.match(/p/gi).length === s.match(/y/gi).length) return true; else return false } // 채점에서 런타임 에러 발생 // match에서 찾는게 없을 경우 null을 반환하기 때문에 null.length가 되고 에러 발생하는 것
function solution(s){ s = s.toLowerCase(); if (s.split('p').length ===s.split('y').length) return true; else return false }
실행에 걸린 최대 시간 : 0.05ms
사고과정
- 정규 표현식 쓰면 바로 되겠는데?
- 런타임 에러 뜨네 뭐지???
- 아 match는 찾는게 없으면 null을 반환하고 null.length 때문에 런타임 에러가 발생하는구나..
- 어차피 개수 세는 거니까 split 쓰면 되겠다
- 성공
평가
개선점
알게된점
- match는 찾는 게 없을 시 null을 반환한다.
반응형'Algorithm > 프로그래머스' 카테고리의 다른 글
[ 프로그래머스 / JS ] Lv.1 소수 찾기 (0) 2023.01.01 [프로그래머스 / JS] Lv.1 [1차] 비밀지도 (2) 2022.12.28 [프로그래머스 / JS] Lv.1 [1차] 다트 게임 (0) 2022.12.28 [프로그래머스 / JS] Lv.1 완주하지 못한 선수 (0) 2022.12.28 [프로그래머스 / JS] Lv.1 모의고사 (0) 2022.12.28