문제)
numPY함수는 대문자와 소문자가 섞여있는 문자열 s를 매개변수로 입력받습니다.
s에 ‘p’의 갯수와 ‘y’의 갯수를 비교해 같으면 True, 다르면 False를 리턴하도록 함수를 완성하세요. ‘p’, ‘y’ 모두 하나도 없는 경우는 항상 True를 리턴합니다.
예를들어 s가 “pPoooyY”면 True를 리턴하고 “Pyy”라면 False를 리턴합니다.
1.
function numPY(s){ var result = true; //대소문자 구분없이 소문자로 변환 var t = s.toLowerCase(); //문자열 배열로 변환해 원소의 갯수로 갯수를 파악 var arr_p = t.split('p'); var arr_y = t.split('y'); var num_p = arr_p.length-1; var num_y = arr_y.length-1; if(num_p != num_y){ result = false; } return result; }
2.
function numPY(s){ var result = true; //대소문자 구분없이 var t= s.toLowerCase(); var num_p = 0; var num_y = 0; //반복문으로 문자순서대로 해당 글자가 맞는지 확인 for(var i=0; i<t.length; i++){ if(t[i]==p){ num_p++; } else if(t[i]==y){ num_y++; } } if(num_p != num_y){ result = false; } return result; }
반복문 없이 작성한 코드는 여기선 짧긴 하지만 별로 좋은거 같진 않다.
프로그래밍의 최대 장점이 자동적인 반복인만큼 반복문을 더 익숙하게 사용하도록 해야거따.