본문 바로가기

알고리즘

[백준] 2475번: 검증수(java, python)

https://www.acmicpc.net/problem/2475

 

2475번: 검증수

컴퓨터를 제조하는 회사인 KOI 전자에서는 제조하는 컴퓨터마다 6자리의 고유번호를 매긴다. 고유번호의 처음 5자리에는 00000부터 99999까지의 수 중 하나가 주어지며 6번째 자리에는 검증수가 들

www.acmicpc.net


💡주의 사항

입력받은 수 각각을 제곱한 다음, 10으로 나눈 나머지를 구하는 것이다


🗒 풀이

java

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int sum = 0;
        for (int i = 0; i < 5; i++) {
            int num = sc.nextInt();
            sum += Math.pow(num, 2);
        }
        sc.close();
        System.out.println(sum % 10);
    }
}
  • 5개의 수를 입력받는 것이니, for문을 만들어 5개의 수를 입력
  • 입력받은 수를 저장하는 것이 주 목적이 아니라, sum값을 구하는 것이 목적이므로  sum 변수에 입력받은 수의 제곱값을 누적
  • 이 때, 제곱을 하기 위하여 Math의 pow함수를 사용하며, 뒤의 '2'인자는 2번 제곱한다는 뜻
  • 나머지 연산을 구하기 위해 % 연산자를 이용

python

num_list = list(map(int, input().split()))
sum_value = sum(i ** 2 for i in num_list)
print(sum_value % 10)
  • 입력받은 인자들을 split()으로 나누어 int로 변환한 것들을 list 형태로 저장
  • sum 함수를 사용하는데, (i ** 2 for i in num_list)를 사용하여 일단 num_list의 값들을 하나씩 탐색하여 제곱시켜준 다음(i ** 2)에 sum 함수를 사용해 합을 구해줌
  • 구한 sum_value를 나머지 연산자 %를 사용해 출력