
1. 문제 분석
1) A, B, C, D, E를 받는다.
2) 검증수를 구한다.
3) 검증수를 출력한다.
2. 의사 결정
1) A~E는 0부터 9 사이의 수이다. nextInt()를 통해 받는다.
2) 검증수는 몫이 아닌 나머지!
3) 전체 숫자를 출력하는 것이 아니라 검증수를 출력하는 것
// 코드 1: 그냥 계산하기
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 주어진 숫자 입력
int A = scanner.nextInt();
int B = scanner.nextInt();
int C = scanner.nextInt();
int D = scanner.nextInt();
int E = scanner.nextInt();
// 검증수 구하기
int F = (A*A + B*B + C*C + D*D + E*E) % 10;
// 검증수 출력
System.out.println(F);
}
}
근데 생각해보니 누적합을 사용할수도 있었다. 뒤늦게 리팩토링 진행.
// 코드 2: 누적합 활용
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 입력받을 숫자의 개수와 누적합 초기화
int sum = 0;
int[] numbers = new int[5];
// 숫자 입력 및 누적합 계산
for (int i = 0; i < 5; i++) {
numbers[i] = scanner.nextInt();
sum += numbers[i] * numbers[i]; // 제곱한 값을 누적합에 추가
}
// 검증수 계산
int verificationNumber = sum % 10;
// 검증수 출력
System.out.println(verificationNumber);
}
}
간단한 문제라고 그냥 풀지 말고 최대한 효율적인 방법을 찾는 습관을 들이자!
| 25501. 재귀의 귀재 (0) | 2024.11.14 |
|---|---|
| 24416. 알고리즘 수업 - 피보나치 수 1 (0) | 2024.11.14 |
| 11975. 뜨거운 붕어빵 (1) | 2024.11.14 |
| 2445. 별 찍기 - 8 (0) | 2024.11.14 |
| 1330. 두 수 비교하기 (0) | 2024.11.14 |