programmers 코딩테스트 : 두 정수 사이의 합

H·2022년 6월 22일
0

Coding Test

목록 보기
26/26

🔔 두 정수 사이의 합

📢 문제 설명

두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요.
예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다.

⛔ 제한 조건

a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요.
a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다.
a와 b의 대소관계는 정해져있지 않습니다.


🔠 통과한 코드

    function solution(a, b) {
    let answer = 0;
    let compare = a > b ? a - b : b - a;
    Array(compare + 1)
        .fill(a > b ? a - compare : b - compare)
        .map((el, i) => {
            el = a > b ? b : a;
            answer += el + i;
        });
    return answer;
}
console.log(solution(a, b));

📌 생각한 로직

  1. 변수 설정: a,b 중 작은 수를 비교해 큰수 - 작은수를 해준다.

  2. 큰수 - 작은수만큼의 length를 새로운 array를 만든다.

  3. fill(legnth)은 length만큼 채우는데, 이는

  4. map()으로 el은 작은 수

  5. answerel + i의 반복~

  6. return answer;


🔠 통과한 코드 Math.min(),Math.max()

function solution(a, b) {
  let answer = 0;
  for (let i = Math.min(a, b); i <= Math.max(a, b); i++) {
    answer += i;
  }
  return answer;
}

📝 남의 코드 for()

// 위에 max min 사용한거랑 유사함
function adder(a, b, s = 0){
for (let i = Math.min(a, b); i <= Math.max(a, b); i++) s += i;
return s;
}

📝 남의 코드 조건 while()

function adder(a, b){
    var result = (a<b)?a:b; // 작은 수
    while(a!=b){ // a가 b랑 같아질때까지 
      result += (a<b)?++a:++b; // 작은 수 + 증가되는 작은 수   
    } 
    return result;
}

📝 남의 코드 등차수열의 합

function adder(a, b){
    let result = 0
    return (a+b)*(Math.abs(b-a)+1)/2;
    //두 수의 차를 절대값으로 구해서 등차 수열로 구하기 
    //양 끝의 합 * 양끝 합의 개수 / 2
}

📌 등차수열의 합

profile
🤘 돌머리도 ROCK이다! 🤘

0개의 댓글