코딩테스트 연습 - 연속된 수의 합 | 프로그래머스 스쿨 (programmers.co.kr)
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 설명
연속된 세 개의 정수를 더해 12가 되는 경우는 3, 4, 5입니다. 두 정수 num과 total이 주어집니다. 연속된 수 num개를 더한 값이 total이 될 때, 정수 배열을 오름차순으로 담아 return하도록 solution함수를 완성해보세요.
입출력 예 #1
입출력 예 #2
입출력 예 #3
입출력 예 #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; } }
문제 풀이
예를들어서 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
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.