본문 바로가기
프로그래밍 기초/Java Festival

[Java Festival] 06. 수열을 이용한 계산 문제 해결하기

by 제이투더문 2024. 6. 22.

 

 안녕하세요, 작가 J입니다. 오늘은 반복되는 규칙을 활용한 수학적 문제를 Java로 풀어보겠습니다. 수열을 이용한 계산 문제를 통해 프로그래밍 실력을 향상시키는 방법을 알아보겠습니다.

 

[Java Festival 06] 수열을 이용한 계산 문제 해결하기

(77 * 1) + (76 * 2) + (75 * 3) + ··· + (1 * 77)를 계산하여 결과를 출력하시오.

 

 

 

문제 설명

 이 문제는 각 항이 특정 규칙을 따르는 수열의 합을 구하는 문제입니다. 첫 번째 항은 77 * 1, 두 번째 항은 76 * 2, 세 번째 항은 75 * 3, ... , 마지막 항은 1 * 77입니다. 이를 모두 더한 합을 구하는 프로그램을 작성하겠습니다.

 

코드 풀이

먼저 이 문제를 해결하기 위한 간단한 자바 코드를 보겠습니다.

public class Main {
    public static void main(String[] args) {
        int result = 0;

        for (int i = 1; i <= 77; i++) {
            result += (78 - i) * i; // 각 항을 계산하여 더함
        }

        System.out.println("결과: " + result);
    }
}

 

 위 코드는 반복문의 성질을 이용한 풀이입니다. for문에서 1부터 77까지 반복시키고, 안에서는 78에서 반복되는 숫자를 빼서 점점 감소하게 만듭니다. 그 결과를 result에 누적시키는 코드입니다. 이제 이 코드를 좀 더 풀어서 쉽게 설명해 보겠습니다.

 

public class Main {
	public static void main(String[] args) {
		int num = 77; // 77부터 감소할 숫자 변수
		int sum = 0; // 누적해 줄 숫자 변수
		
		for (int i = 1; i <= 77; i++) {
			sum += num * i; // (77 * 1), (76 * 2) ...
			num--; // 77부터 감소
		}
		System.out.println(sum);
	}
}

 

 이 풀이는 좀 더 풀어서 쉽게 쓴 코드입니다. 반복문 안에서 i는 자연스럽게 1부터 77까지 증가하니, 우리는 77부터 1까지 감소하는 변수를 만들어 주면 됩니다. 이 변수 num을 이용해 각 항을 계산하고, 이를 sum 변수에 누적합니다.

 

 위 코드나 아래 코드나 결과는 동일합니다. 상황에 맞게 본인이 이해하기 쉬운 풀이로 진행하는 게 가장 적합하다고 생각합니다.

 

마무리

 이 문제는 수열을 이용한 계산을 통해 반복문과 수학적 사고를 연습할 수 있는 좋은 예제입니다. 반복문을 사용하여 각 항을 계산하고 이를 더해나가는 과정을 통해 프로그래밍의 기본 개념을 확실히 익힐 수 있습니다.

 

 이러한 수학적 문제를 해결하는 과정에서 논리적 사고와 문제 해결 능력을 향상시킬 수 있습니다. 앞으로도 다양한 문제를 통해 여러분의 프로그래밍 실력을 키워나가길 바랍니다.

 

앞으로도 많은 예제를 더욱 쉽게 풀이하도록 노력하겠습니다. 감사합니다!