코딩항해기
[프로그래머스] 연속된 수의 합 (JAVA, Python) 본문
JAVA
package test;
import java.util.Arrays;
public class Desc {
public static void main(String[] args) {
int num = 3;
int total = 12;
System.out.println("3,4,5 : "+ Arrays.toString(solution(num, total)));
}
public static int[] solution(int num, int total) {
//등차수열을 활용해 시작번호 구하기
//(total - num*(num-1)/2) / num
//num만큼 반복해 시작 번호를 배열에 저장
//배열 반환
int[] answer = new int[num];
int startNum = (total - num*(num-1)/2) / num; //시작번호
for(int i = 0; i < num; i++) { //startNum부터 num만큼 반복
answer[i] = startNum++; //배열에 저장
}
return answer;
}
}
Python
#연속된 세 개의 정수를 더해 12가 되는 경우는 3, 4, 5입니다.
# 두 정수 num과 total이 주어집니다. 연속된 수 num개를 더한 값이 total이 될 때,
# 정수 배열을 오름차순으로 담아 return하도록 solution함수를 완성해보세요.
#입출력 예
# 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]
def solution(num, total):
answer = []
#(total - num*(num-1)/2) / num을 하면 시작 번호를 구할 수 있다.
#시작번호부터 num만큼 1씩 더한 값을 배열에 저장한다 (answer)
startNum = int((total - num*(num-1)/2) / num) #시작번호 구하기
for i in range(num): #num만큼 반복
answer.append(startNum) #배열에 저장하기
startNum += 1 #숫자 증가하기
return answer
num = 3
total = 12
print("3,4,5 : "+str(solution(num, total)))
코드 풀이가 문제가 아니고 수학이 문제인 것 같다....
'problem solving > 코딩 테스트' 카테고리의 다른 글
[프로그래머스] 끝말잇기 (Python) (0) | 2024.11.26 |
---|---|
[프로그래머스] 코드연결하기 (JAVA, Python) (0) | 2024.11.26 |
[프로그래머스] 로그인 성공? 문제 (JAVA, Python) (2) | 2024.11.23 |
[프로그래머스] JAVA, Python으로 문제풀이 (0) | 2024.11.22 |
[코드업] 4833 : 쇠 막대기 (JAVA) (0) | 2024.11.19 |