어느 연못에 엄마 말씀을 좀처럼 듣지 않는 청개구리가 살고 있었다. 청개구리는 엄마가 하는 말은 무엇이든 반대로 말하였다.
엄마 말씀 word가 매개변수로 주어질 때, 아래 청개구리 사전을 참고해 반대로 변환하여 return 하도록 solution 메서드를 완성하라.
A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Z | Y | X | W | V | U | T | S | R | Q | P | O | N | M | L | K | J | I | H | G | F | E | D | C | B | A |
word | result |
---|---|
"I love you" | "R olev blf" |
단계 1) 알파벳을 찾을 수 있는 array 만들기
단계 2) 대문자/소문자를 구별하는 함수 만들기
단계 3) parameter의 첫번째 값부터 차례대로 변환시켜 빈 배열에 넣어주기 (for문, indexOf, push 등 사용)
단계 4) 3)의 배열을 string 형태로 합쳐주기
const alphabet = "abcdefghijklmnopqrstuvwxyz";
const smallAbc = alphabet.split("");
const bigAbc = alphabet.toUpperCase().split("");
const maxIndex = alphabet.length - 1;
const isUpperCase = (e) => {
return e.toUpperCase() === e;
};
isUpperCase
함수를 만들었다. for (let i = 0; i < wordArr.length; i++) {
if (wordArr[i] == " ") {
answerArr.push(wordArr[i]);
} else if (isUpperCase(wordArr[i])) {
answerArr.push(bigAbc[maxIndex - bigAbc.indexOf(wordArr[i])]);
} else if (!isUpperCase(wordArr[i])) {
answerArr.push(smallAbc[maxIndex - smallAbc.indexOf(wordArr[i])]);
}
}
if (wordArr[i] == " ")
를 첫번째에 써주는 것이다. 왜냐하면 공백은 isUpperCase함수를 true로 반환하기 때문 answer = answerArr.join("");
return answer;
function problem4(word) {
var answer;
const alphabet = "abcdefghijklmnopqrstuvwxyz";
const smallAbc = alphabet.split("");
const bigAbc = alphabet.toUpperCase().split("");
const maxIndex = alphabet.length - 1;
let wordArr = word.split("");
let answerArr = [];
const isUpperCase = (e) => {
return e.toUpperCase() === e;
};
for (let i = 0; i < wordArr.length; i++) {
if (wordArr[i] == " ") {
answerArr.push(wordArr[i]);
} else if (isUpperCase(wordArr[i])) {
answerArr.push(bigAbc[maxIndex - bigAbc.indexOf(wordArr[i])]);
} else if (!isUpperCase(wordArr[i])) {
answerArr.push(smallAbc[maxIndex - smallAbc.indexOf(wordArr[i])]);
}
}
answer = answerArr.join("");
return answer;
}