백준 02475번 / 2475번 문제 링크
문제 이름 : 검증수
주 언어 : Python
태그 : 수학 / 구현 / 사칙연산
solved.ac 등급 : Bronze V (새싹) (2023/01/01 확인)
문제 보기
문제 :
컴퓨터를 제조하는 회사인 KOI 전자에서는 제조하는 컴퓨터마다 6자리의 고유번호를 매긴다. 고유번호의 처음 5자리에는 00000부터 99999까지의 수 중 하나가 주어지며 6번째 자리에는 검증수가 들어간다. 검증수는 고유번호의 처음 5자리에 들어가는 5개의 숫자를 각각 제곱한 수의 합을 10으로 나눈 나머지이다.
예를 들어 고유번호의 처음 5자리의 숫자들이 04256이면, 각 숫자를 제곱한 수들의 합 0+16+4+25+36 = 81 을 10으로 나눈 나머지인 1이 검증수이다.
입력 :
첫째 줄에 고유번호의 처음 5자리의 숫자들이 빈칸을 사이에 두고 하나씩 주어진다.
출력 :
첫째 줄에 검증수를 출력한다.
간단한 사칙연산과 여러가지 변수를 한꺼번에 입력받는 방법에 대한 문제입니다.
크게 다음과 같은 과정을 거칩니다.
1. 한 줄에 쓰여진 5개의 정수형 변수를 입력받는다.
2. 각 정수형 변수의 제곱을 구하고, 모두 합하고, 그 합을 10으로 나눈다.
3. 10으로 나눈 나머지를 출력한다.
간단하게 구현하면 다음과 같습니다.
input() 함수에 split() 함수를 함께 사용해주면 띄어쓰기 단위로 나누어줍니다.
문제의 예제인 0 4 2 5 6을 a, b, c, d, e = input().split()으로 입력받으면
a = "0", b = "4", c = "2", d = "5", e = "6"으로 쪼개져서 입력받습니다.
그렇지 않고 a = input()으로 입력받으면 a = "0 4 2 5 6"으로 입력받습니다.
input().split()으로 a = "0", b = "4", c = "2", d = "5", e = "6"으로 입력 받았다면 각각을 모두 int() 함수를 이용하여 정수형으로 변환해줍니다.
a = "0"이라는 것은, 그냥 "0"이라고 써진 문자열을 뜻합니다. "사과 한 개"라고 써진 종이와 진짜 사과 한 개는 천지차이입니다.
이런 과정이 싫다면 a, b, c, d, e = map(int, input().split())으로 써주면 한꺼번에 int 함수를 씌우고 각 변수로 수들을 뿌려줍니다.
또, 파이썬에서는 자체 거듭제곱 연산자인 **을 통해서 a ** 2로 a의 제곱을 구할 수 있습니다. a * a로 해도 좋고, pow(a, 2)로 해도 좋습니다.
그 후 나머지 연산자인 %를 통해서 10으로 나눈 나머지를 구해줍니다. N % 10은 N을 10으로 나눈 나머지 입니다.
이 문제는 solved.ac Class 1 에 수록된 문제입니다.
다른 문제도 같이 풀어보시는걸 추천드립니다.
Class 1 문제 모음