개발 공부

프로그래머스 두 정수 사이의 합 Java 본문

코딩 테스트

프로그래머스 두 정수 사이의 합 Java

hyecozy 2022. 8. 3. 16:38

https://school.programmers.co.kr/learn/courses/30/lessons/12912

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

이번 문제 풀이는 2개

 

 

 

C로 풀면 for문을 이렇게 돌려도 런타임 에러가 안 뜨네...?

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

long long solution(int a, int b) {
    long long answer = 0;
    if(a == b){
        answer = a;
    }
    else if(a > b){
        for(int i = b; i <= a; i++){
            answer += i;
        }
    }
    else{
        for(int i = a; i <= b; i++){
            answer += i;
        }
    }
    return answer;
}

 

 

 

다시 자바로...

 

다른 사람의 풀이에

파라미터 값을 비교해서 다시 max와  min에 넣어 계산하길래 나도 이럴걸... 하는 마음으로 Math 함수를 써보았다.

그리고 등차수열의 합...!을 이용한 분이 계셔서 따라함 

class Solution {
    public long solution(long a, long b) {
         if(a == b){
            return a;
        }
        else{
            long max = Math.max(a, b);
            long min = Math.min(a, b);

            long num = max - min + 1;
            return num * (max + min) / 2;
        }
    }
}

학생 때 수학 좀 더 열심히 할걸...😂

참고: 2를 나누는 부분에서 실수가 나올 수 있기 때문에 저 부분의 괄호는 생략한다.

 

 

 

 

등차수열의 합 구하기

https://ko.wikihow.com/%EB%93%B1%EC%B0%A8%EC%88%98%EC%97%B4%EC%9D%98-%ED%95%A9%EC%9D%84-%EA%B5%AC%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95

Comments