1:1투혼 테란초보환영

알고리즘 가즈아
테란 가즈아

3번문제

수를 입력받아 2의 거듭제곱인지 여부를 리턴해야 합니다.

예시

let output1 = powerOfTwo(16);
console.log(output1); // true
let output2 = powerOfTwo(22);
console.log(output2); // false

문제 이해하신분~~?
이 문제는 입력된 수가 2의 거듭제곱인지 알아내시요 ~~

2^0 = 1
2^1 = 2
2^2 = 4
2^3 = 8
2^4 = 16
2^5 = 32
2^6 = 64

이런 수 인지 파악하라는건데

이런 문제들은 꼭 규칙이 존재해~~!!
규칙이 잘 안보이면 한번 쭉 적어봐

그럼 맨 위에 대장을 어떤식으로 하면 보여줄지 생각해봐

그러면 규칙이 희미하게 보여 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 아주 희미하게 ㅋㅋ

대장을 찾으면되 !!

어떤수 이든지 계속 2로 나눠주면 결국 1이 되거나 안되거나 할꺼야 !!

그래서 while반복문을 사용하면됨 (조건이 만족하면 계속 돌게 되어 있으니까)

정답보면 무릎을 탁 치게 될거야 ㅋㅋ!!

첫번째 정답코드

function powerOfTwo(num) {
  // TODO: 여기에 코드를 작성합니다. 
  // 2 0 = 1  
  // 2 1 = 2
  // 2 2 = 4 
  // 2 3 = 8 
  // 2 4 = 16
  // 2 5 = 32
  // 2 6 = 64
  // 규칙성 계속 2로 나누면 결국 이 됨 
  if(num === 1){
    return true;
  }
 while (num > 1){ // 입력된 수가 1보다 크면 계속 반복해주세요.
   if(num === 2){ // 1이면 2의 거듭제곱이니 투루하고 멈춰주세요.
     return true;
   } 
   num /= 2;  // 위에 식을 만족못하면 2로 나눠주세요.
 }
  return false; // 위에 식을 아무도 만족못하면 false 출력 해주세요
}

두번째 정답코드
더 간단 버젼 대장을 1로 보고 만든거

function powerOfTwo(num) {
  // TODO: 여기에 코드를 작성합니다.
  
  while(num >= 1){
    if(num === 1){
      return true;
    }
    num = num / 2
  }
  return false
}

4번문제

문자열을 입력받아 문자열을 구성하는 각 단어의 첫 글자로 이루어진 문자열을 리턴해야 합니다.

예시

let output = firstCharacter('hello world');
console.log(output); // --> "hw"

output = firstCharacter(
  'The community at Code States might be the biggest asset'
);
console.log(output); // --> "TcaCSmbtba"

이 문제는 문자열의 띄어쓰기 기준으로 나누고
문자열의 앞글자만 모아서 출력해달라는거야

스필릿을 사용할 수 있는지 !!!!
물어보는 문제인거지

오케 혹시 내가 영혼을 넣어서 만든 글 안 읽고온 잼민이 없겠지?
Split

수도코드
배열로 나누고 배열에서 요소에 문자열 앞글자만 모아서 출력해줘 ㅇㅋ?

정답코드

function firstCharacter(str) {
  // TODO: 여기에 코드를 작성합니다.
  // 문자열을 배열로 나누고 배엵의 인덱스에 문자열에 앞글자만 합쳐준다.
  
  if(str.length === 0){
    return '';
  }
  
  let arr = str.split(' ');
  let result = '';
  for(let i = 0; i < arr.length; i++){
    result = result + arr[i][0];
  }  
  return result;
}

그럼 다음 문제에서 보자 ~~~
다음엔 어디 맵을 가볼까~ ㅋㅋㅋ

아 그리고 정답을 만든는 코드는 여러개 이니까
가장 최적한된 코드를 찾아보자~~

좋은 웹페이지 즐겨찾기