[인프런 알고리즘/JavaScript] 대문자 찾기(for...of, .charCodeAt(), 여러 변환)

옹잉·2023년 12월 5일
0

✨ 알게된 것

목록 보기
2/6
post-custom-banner

문제

한 개의 문자열을 입력받아 해당 문자열에 알파벳 대문자가 몇 개 있는지 알아내는 프로그램
을 작성

막혔던 점

그동안 반복문 사용 시for문으로 작성했는데, 이 강의에서는 for...of(링크)문을 주로 사용하고 있다.
fof...of는 ES6에 추가된 문법이라고 한다. 익숙해지기 위해 되도록 for...of를 사용하고자 한다.


문제를 풀기위해 반복문으로 문자열의 알파벳을 순회하며 각 문자의 아스키코드를 이용해 대문자의 개수를 반환하는 식을 다음과 같이 만들었다.
function solution(s) {
        let answer = 0;
        for (let i of s) {
          if (65 <= i && i <= 90) answer++;
        }
        return answer;
      }

하지만 0을 반환했다. 문자열을 순회할 때 for...of 구문을 사용하고 있지만, 사용한 변수 i는 문자 하나가 아니라 문자의 유니코드 값이다. 따라서 if (65 <= i && i <= 90)와 같은 조건식은 올바르게 동작하지 않는다.
if문에 유니코드로 조건식을 작성해서 풀 수 있지만 아스키코드를 사용하기 위해 .charCodeAt() 메서드를 사용하였다.

풀이

      function solution(s) {
        let answer = 0;
        for (let i of s) {
          let char = i.charCodeAt(); // 문자의 아스키 코드 값
          if (65 <= char && char <= 90) answer++;
        }
        return answer;
      }

      let str = "KoreaTimeGood";
      console.log(solution(str));

💡 TIL (여러 변환)

문자열 ➡ 배열

배열 ➡ 문자열

문자 ➡ 아스키 코드

아스키 코드 ➡ 문자

참고한 글 : [Javascript] 아스키 코드 활용(charCodeAt, fromCharCode) - https://velog.io/@rkio/Javascript

profile
틀리더라도 🌸🌈🌷예쁘게 지적해주세요💕❣️
post-custom-banner

0개의 댓글