PS/백준

[백준/Baekjoon]<2475번> 검증수 [C/C++/Python][Class 1]

DigIT_JHB 2022. 7. 8. 17:30

문제


컴퓨터를 제조하는 회사인 KOI 전자에서는 제조하는 컴퓨터마다 6자리의 고유번호를 매긴다. 고유번호의 처음 5자리에는 00000부터 99999까지의 수 중 하나가 주어지며 6번째 자리에는 검증수가 들어간다. 검증수는 고유번호의 처음 5자리에 들어가는 5개의 숫자를 각각 제곱한 수의 합을 10으로 나눈 나머지이다.

예를 들어 고유번호의 처음 5자리의 숫자들이 04256이면, 각 숫자를 제곱한 수들의 합 0+16+4+25+36 = 81 을 10으로 나눈 나머지인 1이 검증수이다.

입력


첫째 줄에 고유번호의 처음 5자리의 숫자들이 빈칸을 사이에 두고 하나씩 주어진다.

출력


첫째 줄에 검증수를 출력한다.

예제 입력 1


0 4 2 5 6

예제 출력 1


1

 

#문제 풀이 방법

구현만 잘하자!

 1. 5자리 숫자들을 각각 입력받아서 

 2. 각각의 숫자들을 제곱해서 더해주고

 3. 10으로 나눈 나머지를 구하면 끝!

 

#C

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int a[5];
    int sum=0;
    for(int i=0;i<5;i++)
    {
        scanf("%d",&a[i]);
        sum+=a[i]*a[i];
    }
    printf("%d",sum%10);
    return 0;
    
}

위의 풀이 방법은

1.배열을 선언하고 각각의 배열에다가 숫자를 저장

2. 그 숫자를 제곱해서 sum에다가 더해주기

3. 10으로 나눈 나머지 출력

인데

 

다시 보니 배열을 선언하기 보다는 

하나의 변수에 계속 숫자를 입력받고

제곱해서 sum에 더해주는 것이 살짝 더 편해보이기도 한다.

#include <stdio.h>

int main(){
	int a;
	int sum = 0;

	for(int i=0; i<5; i++){
		scanf("%d",&a);
		sum += a*a;
	}
	printf("%d",sum%10);

	return 0;
}

 

#C++

#include <iostream>
using namespace std;
int main(){
	int a;
	int sum = 0;

	for(int i=0; i<5; i++){
		cin >> a;
		sum += a*a;
	}
	cout << sum % 10 << endl;
	return 0;
}

#Python

 

파이썬도

list를 선언해서 풀 수도 있고,

각각의 변수에 저장해서 풀 수도 있을 것이다.

 

a = list(map(int,input().split()))
s=0
for i in range(len(a)):
    s+=pow(a[i],2)
print(s%10)
a,b,c,d,e = map(int, input().split())
print((pow(a,2)+pow(b,2)+pow(c,2)+pow(d,2)+pow(e,2))%10) #pow는 제곱!
반응형