자바스크립트 알고리즘 문제풀이 강의를 듣고 정리한 내용입니다.
📋 문제
한 개의 문자열을 입력받아 해당 문자열의 대문자 개수를 출력한다.
👉 입력
길이가 100을 넘지 않는 문자열이 입력된다.
👈 출력
해당 문자열 속 대문자의 개수를 출력한다.
💡 사용된 개념
charCodeAt()
주어진 인덱스에 대한 유니코드(UTF-16)를 나타내는 0 ~ 65535의 정수를 반환한다.
str.charCodeAt(index)
- index : 0 이상 문자열 길이 미만의 정수. 기본값은 0.
toUpperCase()
주어진 문자열을 대문자로 변환해 반환한다.
📝 풀이
<script>
function solution(s) {
let answer = 0;
for (const a of s) {
if (a.charCodeAt() > 64 && a.charCodeAt() < 91) answer++;
}
return answer;
}
let str = "KoreaTimeGood";
console.log(solution(str));
</script>
for of 문을 이용해 주어진 문자열의 문자들을 순회한다.
charCodeAt()을 이용해 해당 문자의 유니코드 값을 구한다.
만약 문자의 유니코드값이 65(A) ~ 90(Z) 사이라면 answer에 1을 더해준다.
+) 참고로 소문자는 97(a) ~ 122(z)이다.
다른 방법으로는 toUpperCase()를 이용하는 방법이 있다.
<script>
function solution(s) {
let answer = 0;
for (const a of s) {
if (a === a.toUpperCase()) answer++;
}
return answer;
}
let str = "KoreaTimeGood";
console.log(solution(str));
</script>
for of 문을 이용해 주어진 문자열의 문자들을 순회하며 해당 문자가 해당 문자를 대문자로 변환한 것과 같을 때 answer에 1을 더해준다.
즉, 해당 문자가 해당 문자를 대문자로 변환한 것과 같다면 해당 문자는 이미 대문자인 것이다.
'Algorithm > JavaScript' 카테고리의 다른 글
[basics] 가장 긴 문자열 (0) | 2021.12.06 |
---|---|
[basics] 대문자 통일 (0) | 2021.12.05 |
[basics] 문자 찾기 (0) | 2021.12.05 |
[basics] A를 #으로 (0) | 2021.12.05 |
[basics] 일곱 난쟁이 (0) | 2021.12.05 |
댓글