🤯 코딩테스트/Javscript
[자바스크립트 알고리즘 문제풀이(코딩테스트 대비)] Section 01 - 대문자로 통일
kangkibong
2022. 1. 8. 16:07
※ 문제
대문자와 소문자가 같이 존재하는 문자열을 입력받아 대문자로 모두 통일하여 문자열을 출력하는 프로그램을 작성하세요.
▣ 입력설명
첫 줄에 문자열이 입력된다. 문자열의 길이는 100을 넘지 않습니다.
▣ 출력설명
첫 줄에 대문자로 통일된 문자열이 출력된다.
▣ 입력예제 1
ItisTimeToStudy
▣ 출력예제 1
ITISTIMETOSTUDY
※ 코드
<html>
<head>
<meta charset="UTF-8">
<title>출력결과</title>
</head>
<body>
<script>
function solution(s) {
let answer = "";
for(let x of s) {
if(x === x.toLowerCase()) {
answer += x.toUpperCase();
} else {
answer += x;
}
}
return answer;
}
let str = "ItisTimeToStudy";
console.log(solution(str));
</script>
</body>
</html>
<html>
<head>
<meta charset="UTF-8">
<title>출력결과</title>
</head>
<body>
<script>
function solution(s) {
let answer = "";
for(let x of s) {
num = x.charCodeAt();
if(num >= 97 && num <= 122) {
answer += String.fromCharCode(num - 32);
} else {
answer += x;
}
}
return answer;
}
let str = "ItisTimeToStudy";
console.log(solution(str));
</script>
</body>
</html>
※ 설명
- 첫번째 방법(대·소문자 변환 내장함수 사용) 문자열 s의 item(=x)를 확인하기 위해 for문을 작성하고 x가 toLowerCase() 즉, 소문자일 경우 answer(빈 문자열 할당)에 x를 toUpperCase()한 값을 더해주고 그렇지 않을 경우 answer에 x를 더해준다.
- 두번째 방법(아스키코드 변환 내장함수 사용) 문자열 s의 item(=x)를 확인하기 위해 for문을 작성하고 x를 아스키코드로 변환하기 위해 charCodeAt()을 사용하여 num변수에 할당한다. 이후 num이 97 ~ 122(소문자)일 경우 num -32(=(대문자 아스키코드 - 32) = 소문자 아스키코드))를 String.fromCharCode()를 사용하여 answer에 더해주고 그렇지 않을 경우 answer에 x(소문자 그자체)를 더해준다.
※ 핵심
- 아스키코드 ⇒ 문자열 String.fromCharCode()
해당 내용은 김태원님의 자바스크립트 알고리즘 문제풀이 강의를 듣고 작성한 글입니다.