오늘도 코테문제 풀어본다.
데이터 처리할 때 간과하기 쉬운 내용이 다뤄진 문제를 가져왔다.
언어는 javascript
문제는 [Link] 프로그래머스 에서 풀어볼 수 있다.
- 문제 : 주어진 문자열에서 'p' 와 'y'의 개수가 같은 경우 true를 그렇지 않은 경우 false 를 리턴하는 함수를 제작, 두 문자가 모두 0 개라면 true를 출력한다.
const solution = (s) => {
return s.toLowerCase().match(/p/g)?.length === s.toLowerCase().match(/y/g)?.length;
// 문자열에 match 메서드를 사용해 정규식으로 특정 문자를 배열로 반환 받아 개수를 비교
// 문자가 0 개인 경우 배열이 생성되지 않으므로 옵셔널 체이닝으로 두 값을 비교해준다.
}
옵셔널 체이닝 연산자(.?)란
- 호출 대상이 undefined 또는 null 인 경우에 오류를 출력하지 않고 undefined 값을 반환하는 연산자
- 호출 데이터의 값을 예측할 수 없는 경우 사용한다.
const solution = (s) =>{
return s.toLowerCase().split('p').length === s.toLowerCase().split('y').length;
// 생각의 전환으로 쉽게 풀 수 있다.
// 심지어 가장 빠른 방법...
}
쉬운 문제라도 코테 풀기는 언제나 옳다.