본문 바로가기
카테고리 없음

반복문 연습을위해 코테연스

by moseskmc 2023. 6. 17.
  • 나누어 떨어지는 숫자 배열

링크-> https://school.programmers.co.kr/learn/courses/30/lessons/12910

나의 풀이>

function solution(arr, divisor) {
  var answer = [];


  arr.forEach((a) => {    
    if (a % divisor === 0) {
      answer.push(a);
    } 
  });

    answer.sort((a, b) => a - b); 
    var list = answer.length
    
  if (list === 0) {
    return [-1];
  } else {
    return answer;
  }
}
  • 이상한 문자

랑크 --> https://school.programmers.co.kr/learn/courses/30/lessons/12930

function solution(s) {
    let result =''
    let num = 0
for(i=0; i< s.length; i++){
    if (s.charAt(i) === " "){
        num =0
        result += " ";
        continue;
    } else if (num %2 ==0){
        result +=(s.charAt(i).toUpperCase());
        num++;
    } else{
        result += (s.charAt(i).toLowerCase());
        num++
    }
}
    return result;
}
  • 콜라츠 추측

링크-> https://school.programmers.co.kr/learn/courses/30/lessons/12943

while 문에 조건을 True 값이랑 false 값을 햇갈려서 조금 해맸었던 문제다.

function solution(num) {
    var answer = 0;
    var target = num;
    
    while (target !== 1) {
        if (target % 2 === 0) {
            target = target / 2;
        } else {
            target = target * 3 + 1;
        }
        answer += 1;
        
        if (answer === 500) {
            return -1;
        }
    }
    
    return answer;
}

 

  • 두 정수 사이의 합

링크 --> https://school.programmers.co.kr/learn/courses/30/lessons/12912

나의 첫번쨰 시도 코드... 

function solution(a, b) {
    var answer = 0;
    var big = 0;
    var small = 0;
    
    if ( a <= b){
        big += b
        small += a
    }  else {
    big = a;
    small = b;
}


    for (i=small; i<big+1; i++ ){
        answer +=i
    }
    return answer;
}

두번쨰: 가오스의재림 (등차수열의공식)으로

= (x+y) * (y-x)+1/2

 

function solution(a, b) {
    var answer = (a+b)*(Math.abs(b-a)+1)/2;
    return answer;
}