1546번: 평균 첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보 www.acmicpc.net N = int(input()) origin = list(map(int, input().split())) new = [] for i in range(N): new.append(origin[i]/max(origin)*100) print(sum(new)/len(new)) *key point: max, sum, len 등의 함수를 이용하면 리스트의 요소들에 대한 계산을 쉽게 수행할 수 있다.
3052번: 나머지 각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다. www.acmicpc.net remainder = [] for i in range(10): num = int(input()) remainder.append(num % 42) print(len(set(remainder))) *key point: 입력 받은 수들에 대한 나머지를 리스트로 만들어 놓은 뒤 set 함수를 이용하여 집합 자료형으로 변환한다. 이 때 중복요소가 제거되기 때문에 len 함수를 이용하면 서로 다른 나머지의 개수를 알 수 있다.
2577번: 숫자의 개수 첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 크거나 같고, 1,000보다 작은 자연수이다. www.acmicpc.net A = int(input()) B = int(input()) C = int(input()) num = str(A * B * C) for i in range(10): print(num.count(str(i))) *key point: count 메서드를 활용한다. 이는 문자열에만 활용될 수 있기 때문에 주어진 수의 곱을 문자열로 변환해주어야하며, 개수를 세어줄 숫자 또한 문자열로 변환해준다.
2562번: 최댓값 9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오. 예를 들어, 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61 이 주어 www.acmicpc.net num = [] for i in range(1, 10): num.append(int(input())) print(max(num)) print(num.index(max(num)) + 1) *key point: num 이라는 리스트를 생성하여 반복문으로 요소를 채워 넣도록 하였다. 이 때 append라는 메서드가 사용되었으며, 출력 시에는 index라는 메서드가 사용되었다.
10818번: 최소, 최대 첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다. www.acmicpc.net N = int(input()) num = list(map(int, input().split())) print(min(num), max(num)) *key point: list를 이용해 임의의 개수의 변수들을 입력 받을 수 있도록 한다. min, max라는 내장 함수를 이용하여 간단하게 코드를 짤 수 있다. *min, max 없이도 리스트의 요소를 비교, 혹은 리스트를 정렬 하는 등의 방법을 이용하여 문제를 해결할 수도 있다.
1110번: 더하기 사이클 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, www.acmicpc.net N = int(input()) N_origin = N i = 0 while True: i += 1 N1 = (N // 10) + (N % 10) N2 = ((N % 10) * 10) + (N1 % 10) if N2 == N_origin: break else: N = N2 print(i) *key point: 산술연산자를 잘 활용하여 주어진 계산을 수행하고, 미리 변수 하나에 저장해 둔 기존값과 비교하여 반복문을 빠져나오도록 한다. 반복 횟수를 출력..
10951번: A+B - 4 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net while True: try: A, B = map(int, input().split()) print(A + B) except: break *key point: try, except문을 활용하여 두개의 정수가 입력되지 않은 경우 에러가 발생하면 반복문을 빠져나가도록 한다.
10952번: A+B - 5 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net while True: A, B = map(int, input().split()) if A == 0 and B == 0: break else: print(A + B) *key point: while문의 조건을 참으로 두어 계속 반복시킨 뒤 A와 B가 모두 0인 경우에만 반복문을 빠져나오도록 한다.
10871번: X보다 작은 수 첫째 줄에 N과 X가 주어진다. (1 ≤ N, X ≤ 10,000) 둘째 줄에 수열 A를 이루는 정수 N개가 주어진다. 주어지는 정수는 모두 1보다 크거나 같고, 10,000보다 작거나 같은 정수이다. www.acmicpc.net N, X = map(int, input().split()) num = list(map(int, input().split())) for i in range(N): if num[i] < X: print(num[i], end=" ") *key point: 반복문과 조건문을 함께 이용하는 문제이다. 입력값이 몇 개가 될 지 모르기 때문에 list를 활용해준다. print 함수를 사용할 때는 end 속성을 바꾸어주면 출력 후 줄바꿈이 아니라 공백이 출력된다.
2439번: 별 찍기 - 2 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오. www.acmicpc.net N = int(input()) for i in range(1, N + 1): print(' ' * (N-i) + '*' * i) *key point: 이전 문제를 조금 더 응용한 것 뿐이다. 두 문자열을 더하면 이어지는 것을 이용한다.
- Total
- Today
- Yesterday
- Python
- til
- 2053
- Wil
- 13909
- 24060
- Programmers
- 24723
- 항해+
- 13241
- 4134
- 벡준
- 백준
- 24313
- 코육대
- 20920
- 25501
- 2587
- 25192
- 5597
- 17103
- 1269
- 2903
- 26069
- programmer
- MySQL
- 2738
- 10807
- SQL
- 항해 플러스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |