[백준] CLASS1 - 3

이하나·2021년 12월 18일
0

백준 문제 풀이

목록 보기
3/4

[ 2475 ] 검증수

사용 언어 : 파이썬
문제:
컴퓨터를 제조하는 회사인 KOI 전자에서는 제조하는 컴퓨터마다
6자리의 고유번호를 매긴다.
고유번호의 처음 5자리에는 00000부터 99999까지의 수 중 하나가 주어지며
6번째 자리에는 검증수가 들어간다.
검증수는 고유번호의 처음 5자리에 들어가는 5개의 숫자를
각각 제곱한 수의 합을 10으로 나눈 나머지이다.
예를 들어 고유번호의 처음 5자리의 숫자들이 04256이면, 
각 숫자를 제곱한 수들의 합 0+16+4+25+36 = 81 을 10으로 나눈 나머지인 1이 검증수이다.
( 첫째 줄에 고유번호의 처음 5자리의 숫자들이 빈칸을 사이에 두고 하나씩 주어진다. )
제출
Num = list(map(int, input().split()))
# 주어지는 숫자들을 하나하나 리스트에 넣고,
Double_list = []
# 빈 리스트를 하나 만들어 준 후
for i in Num:
   D = i**2
   Double_list.append(D)
# Num의 요소들을 제곱하여 Double_list에 집어 넣는다.
key = sum(Double_list)%10
# Double_list의 모든 수를 더해 10으로 나눈 후 그 나머지를 프린트 한다.
print(key)

[ 2557 ] Hello World

사용 언어 : 파이썬
문제:
Hello World!를 출력하시오.
제출
print("Hello World!")

[ 2562 ] 최댓값

사용 언어 : 파이썬
문제:
9개의 서로 다른 자연수가 주어질 때,
이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오.
예를 들어, 서로 다른 9개의 자연수
3, 29, 38, 12, 57, 74, 40, 85, 61
이 주어지면, 이들 중 최댓값은 85이고, 이 값은 8번째 수이다.
( 첫째 줄부터 아홉 번째 줄까지 한 줄에 하나의 자연수가 주어진다.
  주어지는 자연수는 100 보다 작다. )
제출
N_list = []
for i in range(9):
   N_list.append(int(input()))
# 입력받은 수를 넣을 리스트를 준비하고 for문을 이용하여 하나하나 리스트에 넣는다.
max_n = max(N_list)
index_n = N_list.index(max_n) + 1
# 그 중 최댓값을 max_n,
# 리스트는 0 부터 시작하므로 +1을 하여 그 위치를 index_n으로 해서,
print(max_n)
print(index_n)
# 프린트 한다.

[ 2577 ] 숫자의 개수

사용 언어 : 파이썬
문제:
세 개의 자연수 A, B, C가 주어질 때 A × B × C를 계산한 결과에
0부터 9까지 각각의 숫자가 몇 번씩 쓰였는지를 구하는 프로그램을 작성하시오.
예를 들어 A = 150, B = 266, C = 427 이라면
A × B × C = 150 × 266 × 427 = 17037300 이 되고,
계산한 결과 17037300 에는 0이 3번, 1이 1번, 3이 2번, 7이 2번 쓰였다.
( 첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다.
  A, B, C는 모두 100보다 크거나 같고, 1,000보다 작은 자연수이다. )
제출
A = int(input())
B = int(input())
C = int(input())
# 수를 각각 받아와서,
Num = A*B*C
N_list = list(map(int, str(Num)))
# 곱한 결과의 수를 쪼개 리스트로 만든다.
Only = list(set(N_list))
# 중복되는 수를 제외한 리스트를 하나 만들고,
Cnt = []
for i in Only:
   Cnt.append(N_list.count(i))
# 그 리스트에서 요소를 가져와 N_list에서 사용된 횟수를 세서 Cnt에 넣는다.
counting = 0
# 처음 0 부터 시작해서,
while counting < 10:
   if counting in Only:
       ind = Only.index(counting)
       print(Cnt[ind])
       counting = counting + 1
# Only 리스트에 counting이 존재한다면,
# Only에서 그 수의 위치를 찾아 Cnt의 동일 위치의 수를 출력하고
# counting을 +1 한다.
   else:
       print(0)
       counting = counting + 1
# Only 리스트에 counting이 존재하지 않는다면,
# 0 을 출력하고 counting을 +1 한다.
# counting이 9가 될 때까지 반복 된다.
다시 시도
# 더 쉽게 결과를 찾아내는 방법을 찾음.
A = int(input())
B = int(input())
C = int(input())
# 수를 각각 받아와서,
Num = A*B*C
N_list = list(map(int, str(Num)))
# 곱한 결과의 수를 쪼개 리스트로 만든다.
for i in range(10):
   print(N_list.count(i))
# 0 부터 9 까지 N_list에서 사용된 횟수를 세서 반복해서 출력한다.
profile
코딩을 배우는 비전공자 코린이!

0개의 댓글