✏️기록하는 즐거움
article thumbnail

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

|  제출

function solution(s) {
  let convertedWord = s.toLowerCase();

  let pCount = convertedWord.split("p").length;
  let yCount = convertedWord.split("y").length;

  return pCount === yCount ? true : false;
}

 

|  풀이과정

첫 번째 제출 - for문 사용

function solution(s) {
  let pCount = 0;
  let yCount = 0;
  let convertedWord = s.toLowerCase();

  for (let i = 0; i < s.length; i++) {
    if (convertedWord[i] === "p") {
      pCount++;
    } else if (convertedWord[i] === "y") {
      yCount++;
    } else {
      continue;
    }
  }

  return pCount === yCount ? true : false;
}

개수를 비교할 때 대문자와 소문자를 구별하지 않기 때문에 문자열 s를 소문자로 변환한 후 해당 값이 p면 pCount를, y면 yCount를 증가하여 개수를 비교했다.

 

두 번째 제출 - split 사용하기

function solution(s) {
  let convertedWord = s.toLowerCase();

  let pCount = convertedWord.split("p").length;
  let yCount = convertedWord.split("y").length;

  return pCount === yCount ? true : false;
}

split은 괄호 안의 구분자를 기준으로 문자열을 나눠준다.

따라서, p와 y를 split으로 나눈 문자열 배열의 길이는 문자열 내 p와 y의 개수와 같기 때문에 해당 값을 비교하여 반환하면 된다.

 

|  개념

String.prototype.split()

  • String 객체를 지정한 구분자를 이용하여 여러 개의 문자열로 나눈다.
  • 구분자가 빈 문자열일 경우 str의 각각의 문자가 배열의 원소 하나씩으로 변환된다.

 

profile

✏️기록하는 즐거움

@nor_coding

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!