
해당 문제는 문자열에서 P와 Y의 갯수를 구한 후 P와 Y의 갯수가 동일하면 True 그렇지 않으면 false를 return 하는 문제이다. 문제가 단순하여 if문을 활용할 수 도 있으며, 그렇지 않고도 간단하게 문제를 해결 할 수 있다.
순으로 간단하게 내가 해야할 것들을 정리해 보았다. 식으로 표현해보자.
function solution(s){
if ( s.toUpperCase().split("P").length === s.toUpperCase().split("Y").length) {
return true
} else {
return false
}
};
tuUpperCase() - 주어진 매개변수의 소문자 대문자를 모두 대문자로 바꿔주는 함수.
split() 함수 string.split(separator, limit)
split() 함수는, 문자열을 'separator'로 잘라서, 'limit' 크기 이하의 배열에 잘라진 문자열을 저장하여 리턴합니다.
즉 내가 작성한 코드를 읽어보면
.split(").length (매개변수로 주어진 글자를 배열로 치환 한 후의 문자열 P의 length(길이))
=== 동일하다 / s.toUpperCase().split("Y").length
= 매개변수로 주어진 코드에서의 P와 Y의 길이(갯수 / length)가 동일하다면 return true else false
로 해석이 가능하다.
개인적으로 많은 사람들이 사용할지도 모르지만, 문법과 코드읽는법에 익숙치 못한 내가 코드를 작성 및 읽을때 가장 많이 애용하는 '내멋대로' 한국어로 번역하기. 이다. 영어와 어순이 유사하다고 느껴 해당 코드도
' S를대문자로만들어서.배열로만든 String의 P의 갯수가 === S를 대문자로 만들어 배열로만든 String Y의 갯수가 동일시 '
라고 멋대로 생각해보았으나. 생각보다 초짜인 내게 도움이 많이된다. 다양한 코드를 읽어보면 언젠가는 한계가 느껴질 방법일 수 있으나 알고리즘을 푸는데 있어 많이 도움이 되고있다.