210816 TIL

코드아카데미 문제 풀이

JAVASCRIPT SYNTAX, PART II - Loops

루프에 대한 기초적 개념을 익힌 후 실습 문제

문제

"turpentine and turtles"을 고래 언어로 번역하세요.

  • 고래 언어는 자음이 없고 "y"를 제외한 모음으로만 구성됩니다.
  • "u"와 "e"는 두 배로 만들어 출력해야 합니다.

할 일

  1. 고래의 언어로 번역할 문장을 담을 변수를 생성한다.
  2. y를 제외한 모음을 담을 배열을 생성한다.
  3. 고래의 언어로 변역된 문장을 담을 변수를 생성한다.
  4. 고래의 언어로 번역할 문장과 모음을 비교할 for 루프를 만든다.
  5. 비교 후 해당되는 모음을 3번에서 생성한 변수에 넣는다.
  6. 5번 과정에서 만약 e와 u가 들어간 모음이면 2배로 만들어 3번 변수에 넣는다.
  7. 배열을 하나의 문자열로 만들고 대문자로 출력한다.

문제 해결

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());

좋은 웹페이지 즐겨찾기