- 문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요.
2. 제한 조건
- s의 길이는 1 이상 5이하입니다.
- s의 맨앞에는 부호(+, -)가 올 수 있습니다.
- s는 부호와 숫자로만 이루어져있습니다.
- s는 "0"으로 시작하지 않습니다.
3. 입출력 예 설명
- 예를들어 str이 "1234"이면 1234를 반환하고, "-1234"이면 -1234를 반환하면 됩니다.
- str은 부호(+,-)와 숫자로만 구성되어 있고, 잘못된 값이 입력되는 경우는 없습니다.
4. 문제 풀이
function solution(str, num) {
const bigStr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
const smallStr = 'abcdefghijklmnopqrstuvwxyz';
let result = '';
for (let i = 0; i < str.length; ++i) {
if (str[i] === ' ') result += ' ';
else if (bigStr.includes(str[i])) {
let temp = bigStr.indexOf(str[i]) + num;
result += bigStr[temp % bigStr.length];
}
else {
let temp = smallStr.indexOf(str[i]) + num;
result += smallStr[temp % smallStr.length];
}
}
return result;
}
5. 문제 풀이 해설
function solution(str) {
// 분석
// 매우매우 간단한 문제이다.
// 그래서 아마도 문자열이 사칙연산과 조합시 어떤 결과가 나오는지
// 체크하고 이해해보라는 안배가 숨어있는 것 같다.
// 풀이 1
// 일단 그냥 문자열 -> 숫자 변환 함수 쓰면 문제는 끝나긴 한다.
// return Number(str);
// 풀이 2
// 숫자형태의 문자열은 곱셈, 나눗셈,
// 뺄셈과 조합시, 연산 수행과 동시에 숫자타입으로 변환된다.
// 반면 덧셈이랑 조합하면 그대로 뒤에 붙는다.
// 즉, 문자열타입은 덧셈 연산만 가능한 셈이다.
return str * 1;
}