TIL_230417- 프로그래머스 Lv1

정윤숙·2023년 4월 17일
0

TIL

목록 보기
150/192
post-thumbnail

📒 오늘의 공부

1. 프로그래머스

Lv1. 두 정수 사이의 합

나의 풀이

function solution(a, b) {
    let sumAtoB = 0;
    if(a === b){
        return a
    }
    else{
        if(a<b){
             for(let i=a; i<=b; i++){
            sumAtoB += i
            
        }
        }
        else{
             for(let i=b; i<=a; i++){
            sumAtoB += i
            
        }
        }
       
        
    }
    return sumAtoB
}

다른 풀이

function adder(a, b, s = 0){
  for (var i = Math.min(a, b); i <= Math.max(a, b); i++) s += i;
  return s;
}
  • 내가 원했던 중복 피하는 방법
    • 나는 a<b로 조건을 걸었는데 min,max를 활용하면 된다.
  • a와 b가 같을 때 조건을 추가 안 해도 된다는 것!(내 코드에서도 a,b 같을 때 조건 삭제해도 실행 잘 됨)

다른 풀이

function adder(a, b){
    var result = 0
    //함수를 완성하세요
    return (a+b) * (Math.abs(a-b)+1) / 2;
}
  • 가우스 공식 활용
    • n*(n+1)/2
    • 자연수 1부터 n까지의 합을 구하는 공식

Math.abs()

  • 절대값 반환
  • Math.abs(-5) => 5
profile
프론트엔드 개발자

0개의 댓글