코딩테스트 & 문제 풀이

[C]프로그래머스_Lv1 : 두 정수 사이의 합

Hicecream 2023. 5. 3. 00:23

2022년 7월 15일에 작성됨

 

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

 

프로그래머스

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

programmers.co.kr

 

 

문제 분석

  • a, b를 포함한 a와 b 사이의 합을 구하는 문제이다.
  • a와 b의 대소관계가 정해져 있지 않으므로, a랑 b가 같은 경우, 큰 경우, 작은 경우의 3가지로 나누어 풀어본다.

 

 

소스 코드 (⭕)

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

long long solution(int a, int b) {		// a와 b의 범위를 고려해 long long으로 선언
    
    long long answer = 0;
    
    if(a==b) {			// a와 b가 같은 경우
        return a;
    }
    else if(a<b) {		// a보다 b가 큰 경우
        for(int i=a; i<=b; i++)
            answer+=i;
    }
    else {				// b보다 a가 큰 경우
        for(int i=b; i<=a; i++)
            answer+=i;
    }
    return answer;
}

 

코드 분석

a와 b가 같을 때
그 값을 그대로 반환해준다.

 

a보다 b가 클 때
i의 초깃값을 a라고 두고, b랑 같아질 때 까지의 값을 answer에 누적시켜 합을 구한다.

 

b보다 a가 클 때
i의 초깃값을 b라고 두고, a랑 같아질 때 까지의 값을 answer에 누적시켜 합을 구한다.

 

 

피드백 ✍️

주석들의 들여쓰기 위치 맞춰주면 더 깔끔할 것 같다.
if 문 조건에서 수식을 ‘i<=b’를 ‘i <= b’ 처럼 띄어쓰기를 넣어주면 가독성에 더 좋다.

 

 

end

주석 들여쓰기를 탭 두 번으로 맞춘다고 한건데 주석끼리 맞춰주는게 더 보기 좋구나.. 앞으로는 주석끼리 맞추도록 해야 겠다! (이미 수정된 상태입니다!)

프로그래머스는 비주얼 스튜디오 처럼 코드가 자동 정렬이 안돼서 불편하다ㅜ_ㅜ 내가 모르는 기능이 따로 있는건가?