[코테 풀기] 문자열 내 p와 y의 개수(JS)

JCH27·2023년 11월 26일
0

coding_test

목록 보기
11/12

오늘도 코테문제 풀어본다.
데이터 처리할 때 간과하기 쉬운 내용이 다뤄진 문제를 가져왔다.
언어는 javascript
문제는 [Link] 프로그래머스 에서 풀어볼 수 있다.


  • 문제 : 주어진 문자열에서 'p' 와 'y'의 개수가 같은 경우 true를 그렇지 않은 경우 false 를 리턴하는 함수를 제작, 두 문자가 모두 0 개라면 true를 출력한다.

해결 1 - 정규식과 옵셔널 체이닝

	const solution = (s) => {
      return s.toLowerCase().match(/p/g)?.length === s.toLowerCase().match(/y/g)?.length;
      // 문자열에 match 메서드를 사용해 정규식으로 특정 문자를 배열로 반환 받아 개수를 비교
      // 문자가 0 개인 경우 배열이 생성되지 않으므로 옵셔널 체이닝으로 두 값을 비교해준다.
    }

옵셔널 체이닝 연산자(.?)란

  • 호출 대상이 undefined 또는 null 인 경우에 오류를 출력하지 않고 undefined 값을 반환하는 연산자
  • 호출 데이터의 값을 예측할 수 없는 경우 사용한다.

 

해결 2 - split 메서드

	const solution = (s) =>{
    	return s.toLowerCase().split('p').length === s.toLowerCase().split('y').length;
      	// 생각의 전환으로 쉽게 풀 수 있다.
      	// 심지어 가장 빠른 방법...
    }

기억해야할 것

  • 옵셔널 체이닝 연산자를 사용해 데이터의 형식이 불분명 할 때 안전하게 코드를 짤 수 있다.
  • match메서드는 조건이 맞지 않는 경우 빈 배열이 아닌 null 값이 리턴된다.
  • 사고의 전환은 언제나 필요하다.

쉬운 문제라도 코테 풀기는 언제나 옳다.

profile
포기하지 않는 키보드 워리어

0개의 댓글