1일 1코테 day 19 _ 두 정수 사이의 합

konut ko·2022년 9월 2일
0
post-custom-banner

문제

나의 답

function solution(a, b) {    
    if(a === b){return a}
    else if (a < b) {
        return (a+b)*(b-a+1)/2;
    }else{
    return (a+b)*(a-b+1)/2;}
}

가우스의 덧셈법으로 풀었다.

기가 막힌 풀이법이 생각이 안나...

넘의 풀이 1

나와 같은 가우스 풀이법으로 풀었는데
a-b의 절대값을 찾아주는 Math.abs() 함수로 코드가 간단해졌다.

넘의 풀이 2

Math최대값 최소값 매서드를 이용해 for문으로 풀었다! 신기해!!

넘의 풀이 3

가장 멋졌던 풀이다!
2번 풀이랑 같은 방법인데 Math함수 사용 없이, 그리고 if문 없이 해결해서 신박해 보였음.
while문과 삼항연산자로 해결했는데

result += (a<b) ? ++a : ++b

a와b가 다른 동안 (=같아질때까지) result에 a 나 b를 더할건데,
a가 크다?(a<b false ?) >>> b를 증가
b가 크다?(a<b true ? ) >>> a를 증가

profile
보초딩코라 틀린 내용 있을 수도 있습니다. 댓글 지적 환영
post-custom-banner

0개의 댓글