210816 TIL
코드아카데미 문제 풀이
JAVASCRIPT SYNTAX, PART II - Loops
루프에 대한 기초적 개념을 익힌 후 실습 문제
문제
"turpentine and turtles"을 고래 언어로 번역하세요.
- 고래 언어는 자음이 없고 "y"를 제외한 모음으로만 구성됩니다.
- "u"와 "e"는 두 배로 만들어 출력해야 합니다.
할 일
- 고래의 언어로 번역할 문장을 담을 변수를 생성한다.
- y를 제외한 모음을 담을 배열을 생성한다.
- 고래의 언어로 변역된 문장을 담을 변수를 생성한다.
- 고래의 언어로 번역할 문장과 모음을 비교할 for 루프를 만든다.
- 비교 후 해당되는 모음을 3번에서 생성한 변수에 넣는다.
- 5번 과정에서 만약 e와 u가 들어간 모음이면 2배로 만들어 3번 변수에 넣는다.
- 배열을 하나의 문자열로 만들고 대문자로 출력한다.
문제 해결
1. 고래의 언어로 번역할 문장을 담을 변수를 생성한다.
let input = 'turpentine and turtles';
2. y를 제외한 모음을 담을 배열을 생성한다.
const vowels = ['a', 'e','i','o','u'];
3. 고래의 언어로 변역된 문장을 담을 변수를 생성한다.
let whaleTalk = [];
4. 고래의 언어로 번역할 문장과 모음을 비교할 for 루프를 만든다.
for(let i = 0; i<input.length; i++){
for(let j = 0; j<vowels.length; j++){
}
}
input 변수가 담은 문자열은 유사 배열이기 때문에 for문으로 순회할 수 있다.
왜 for문에 변수 이름을 i로 정했을까?
여러 예제를 볼 때마다 i로 변수 이름을 정하는 것이 궁금해 찾아보니 누군가는 index를 의미하기도 하고 또 다른 누군가는 반복을 의미하는 iteration을 의미한다고도한다. 의미는 달라도 의도가 같은 것처럼, 협업하는 개발자와 나를 위해서 반복문에도 의미 있는 변수 이름을 할당하는 것이 중요한 것 같다.
5. 비교 후 해당되는 모음을 3번에서 생성한 변수에 넣는다.
for(let i = 0; i<input.length; i++){
for(let j = 0; j<vowels.length; j++){
if(input[i] === vowels[j]){
whaleTalk.push(input[i]);
}
}
}
}
else문은 옵션이기 때문에 사용하지 않을 수 있다.
6. 5번 과정에서 만약 e와 u가 들어간 모음이면 2배로 만들어 3번 변수에 넣는다.
for(let i = 0; i<input.length; i++){
for(let j = 0; j<vowels.length; j++){
if(input[i] === vowels[j]){
whaleTalk.push(input[i]);
if(input[i] === 'e' || input[i] ==='u'){
whaleTalk.push(input[i]);
}
}
}
}
7. 배열을 하나의 문자열로 만들고 대문자로 출력한다.
console.log(whaleTalk.join('').toUpperCase());
//UUEEIIEEAAUUEE
전체 코드
let input = 'turpentine and turtles';
const vowels = ['a', 'e','i','o','u'];
let whaleTalk = [];
for(let i = 0; i<input.length; i++){
for(let j = 0; j<vowels.length; j++){
if(input[i] === vowels[j]){
whaleTalk.push(input[i]);
if(input[i] === 'e' || input[i] ==='u'){
whaleTalk.push(input[i]);
}
}
}
}
console.log(whaleTalk.join('').toUpperCase());
Author And Source
이 문제에 관하여(210816 TIL), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@sozero/210815-TIL-6f4zc9vo저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)