본문 바로가기
front-end 공부하기/코딩테스트

[코딩 테스트 연습] 문자열 내 p와 y의 개수 (javascript)

by 치즈도넛 2022. 9. 27.
반응형

문제

대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를 리턴합니다. 단, 개수를 비교할 때 대문자와 소문자는 구별하지 않습니다.

 

풀이

function solution(s){
    const pCount = s.toLowerCase().split("p").length;
    const yCount = s.toLowerCase().split("y").length;
    
    return pCount === yCount;
}

split을 원하는 단어 기준으로 분할하도록 하면, 

s = "pPoooyY";

const pCount = s.toLowerCase().split("p"); // ["p", "p", "oooyy"]
const yCount = s.toLowerCase().split("y"); // ["ppooo", "y", "y"]

위와 같이 출력되어 length를 구하고 비교하면 쉽게 p와 y의 개수가 같은지 확인할 수 있다!  너무 신기하다..!

String.prototype.toLowerCase()

모든 문자를 소문자로 바꿈

 

String.prototype.toUpperCase()

모든 문자를 대문자로 바꿈

 

String.prototype.split()

split()
split(separator)
split(separator, limit)
separator : 분할이 발생할 위치를 적는다
limit : 배열에 포함될 문자열의 수를 지정한다

 

const str = 'The quick brown fox jumps over the lazy dog.';

const words = str.split(' '); //space 기준으로 분할
console.log(words[3]);
// expected output: "fox"

const chars = str.split(''); // 모든 단어 + 공백 분할
console.log(chars[8]);
// expected output: "k"

const strCopy = str.split(); // 배열로 바꾼 뒤 출력 (분할 x)
console.log(strCopy);
// expected output: Array ["The quick brown fox jumps over the lazy dog."]

 

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/split

 

String.prototype.split() - JavaScript | MDN

The split() method takes a pattern and divides a String into an ordered list of substrings by searching for the pattern, puts these substrings into an array, and returns the array.

developer.mozilla.org

 

반응형

댓글