문제
컴퓨터를 제조하는 회사인 KOI 전자에서는 제조하는 컴퓨터마다 6자리의 고유번호를 매긴다.
고유번호의 처음 5자리에는 00000부터 99999까지의 수 중 하나가 주어지며 6번째 자리에는 검증수가 들어간다.
검증수는 고유번호의 처음 5자리에 들어가는 5개의 숫자를 각각 제곱한 수의 합을 10으로 나눈 나머지이다.
예를 들어 고유번호의 처음 5자리의 숫자들이 04256이면, 각 숫자를 제곱한 수들의 합 0+16+4+25+36 = 81 을 10으로 나눈 나머지인 1이 검증수이다.
입력
- 첫째 줄에 고유번호의 처음 5자리의 숫자들이 빈칸을 사이에 두고 하나씩 주어진다.
출력
- 첫째 줄에 검증수를 출력한다.
풀이
- 그냥
for
문으로 풀어도 되지만 조금 다른 방식으로 풀고 싶어map
과lambda
를 이용했다.
map
은lambda
식과 리스트를 mapping 시킨다.
lambda
식은 값을 제곱으로 바꿔준다.
답
from sys import stdin
input = stdin.readline
def valid_number(n):
return sum(map(lambda x: x ** 2, n)) % 10
if __name__ == "__main__":
unique_number = list(map(int, input().split()))
res = valid_number(unique_number)
print(res)
이 문제를 마지막으로 Class 1을 All Clear 했다 👍🏻
Uploaded by Notion2Tistory v1.1.0