본문 바로가기
코딩테스트/프로그래머스 입문

[코딩테스트 Lv.0] 연속된 수의 합

by 블루데이제이 2024. 4. 24.
728x90
반응형
문제 설명

연속된 세 개의 정수를 더해 12가 되는 경우는 3, 4, 5입니다. 두 정수 num과 total이 주어집니다. 연속된 수 num개를 더한 값이 total이 될 때, 정수 배열을 오름차순으로 담아 return하도록 solution함수를 완성해보세요.

제한사항
1 ≤ num ≤ 100
0 ≤ total ≤ 1000
num개의 연속된 수를 더하여 total이 될 수 없는 테스트 케이스는 없습니다.
입출력 예
num	total	result
3	12	[3, 4, 5]
5	15	[1, 2, 3, 4, 5]
4	14	[2, 3, 4, 5]
5	5	[-1, 0, 1, 2, 3]
입출력 예 설명
입출력 예 #1
num = 3, total = 12인 경우 [3, 4, 5]를 return합니다.

입출력 예 #2
num = 5, total = 15인 경우 [1, 2, 3, 4, 5]를 return합니다.

입출력 예 #3
4개의 연속된 수를 더해 14가 되는 경우는 2, 3, 4, 5입니다.

입출력 예 #4
설명 생략

내 풀이
Java
class Solution {
    public int[] solution(int num, int total) {
        int[] answer = new int[num];
        
        int s = total / num - ((num - 1) / 2);
        
        
        for(int i = 0; i < num; i++){
            answer[i] = s++;
        }
        
        
        return answer;
    }
}
C
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

int* solution(int num, int total) {
    // return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요.
    int* answer = (int*)malloc(num*sizeof(int));
    
    int s = total / num - ((num - 1) / 2);        
        
    for(int i = 0; i < num; i++){
        answer[i] = s++;
    }
    
    return answer;
}
Python
def solution(num, total):
    answer = []
    
    s = total // num - ((num - 1) // 2);        
    
    for i in range(num):
        answer.append(s)
        s += 1
    
    return answer

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

 

프로그래머스

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

programmers.co.kr

 

728x90
반응형