<대문자 찾기>
: 한 개의 문자열을 입력받아 해당 문자열에 알파벳 대문자가 몇 개 있는지 알아내는 프로그램을 작성한다.
- 첫 번째 방법은, toUpperCase()을 이용해 대문자이면, answer에 1씩 더해준다!
ex ) x===toUpperCase() 이런 식으로 코드를 짜면 되는데,
만약 x가 대문자라면 true가 나와서 if문으로 갈 것이다.
유의할 점 ) x.toUpperCase() 한다고 해서, x의 값이 변하는 건 아님. 만약 x가 a인 상태에서 a.toUpperCase()를 해도, x의 값은 그대로 x(소문자)이다. 그렇기 때문에 x === x.toUpperCase()해서 비교할 수 있는거다.- 두 번째 방법은, charCodeAt()를 이용해 대소문자들을 다 아스키코드로 변경하고, 아스키번호(대문자:65-90/소문자:97-122)를 이용하여 대문자이면 answer에 1씩 더해준다.
<script> //첫 번째 방법, 두 번째 방법 function solution(s){ let answer=0; for(let x of s){ //let num=x.charCodeAt(); //if(num>=65 && num<=90) answer++; if(x===x.toUpperCase()) answer++; } return answer; } let str="KoreaTimeGood"; console.log(solution(str)); </script>
<script> //내 코드 function solution(s){ let answer = s; answer = answer.split(/[A-Z]/g).length; answer = answer - 1; return answer; } let str="KoreaTimeGood"; console.log(solution(str)); </script>
이번엔 반성할 거 없다.
나는 코드를 split을 이용해서 짰다. split인자값으로
/[A-Z]/g를 주었고, '대문자로 인해 달라진 덩어리개수(length)-1'을 하여 대문자 수를 구했다.