Paradox Simulation

728x90
반응형

코딩테스트 연습 - 연속된 수의 합 | 프로그래머스 스쿨 (programmers.co.kr)

 

프로그래머스

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

programmers.co.kr

 

 

연속된 수의 합

문제 설명

연속된 세 개의 정수를 더해 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

  • 설명 생략

 

 

 

 

정답 공개

class Solution {
    public int[] solution(int num, int total) {
        int[] answer = new int[num];
        int i1 = (total / num) + (1 - num) / 2;
        for(int i = 0; i < num; i++){
            answer[i] = i1++;
        }
        return answer;
    }
}

 

 

문제 풀이

  1. 연속된 숫자 구하기 (홀수일경우 짝수일경우 고려)
  2. ( 전체수 / 입력수 ) + (1(짝수고려)- num) / 2 --> 문제 해결방식
  3. for문 돌려서 나온 숫자를 answer에 대입하기.

 

예를들어서 num = 2, total = 15이면 7, 8이 나와야한다.

 

위 공식에 대입해보자.

(15 / 2) + (1 - 2) / 2 -> 7 + 0 = 7

for문이 두번돌으므로 (num만큼) 7, 7++ (8)

 

다른 예시도 들어보겠다.

 

num = 4, total = 14의 경우

(14 / 4) + (1 - 4) / 2 -> 3 + (-1) = 2

for문은 num 숫자만큼 돌기 때문에, 4번돈다

즉, 2, 3, 4, 5

 

실행 결과
정확성 테스트
테스트 1  통과 (0.02ms, 72.8MB)
테스트 2  통과 (0.02ms, 73.5MB)
테스트 3  통과 (0.02ms, 79.3MB)
테스트 4  통과 (0.01ms, 74.4MB)
테스트 5  통과 (0.02ms, 75.2MB)
테스트 6  통과 (0.02ms, 78.3MB)
테스트 7  통과 (0.01ms, 71.8MB)
테스트 8  통과 (0.02ms, 76.5MB)
테스트 9  통과 (0.02ms, 77.5MB)
테스트 10  통과 (0.02ms, 66.3MB)
채점 결과
정확성: 100.0
합계: 100.0 / 100.0
728x90
반응형
250x250
반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band