4673번: 셀프 넘버 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, www.acmicpc.net num = set(range(1, 10000)) remove_set = set() for i in num: for n in str(i): i += int(n) remove_set.add(i) self_numbers = num - remove_set for j in sorted(self_numbers): print(j) ... *key point: 셀프 넘버가 아닌 수들을 제거함으로써 셀프 넘버를 찾는다. 중복 요..
15596번: 정수 N개의 합 C++17, Java 8, Python 3, C11, PyPy3, C99, C++98, C++11, C++14, Go, C99 (Clang), C++98 (Clang), C++11 (Clang), C++14 (Clang), C11 (Clang), C++17 (Clang) www.acmicpc.net def solve(a): ans = 0 for num in a: ans += num return ans *key point: def를 통해 함수를 정의, return을 통해 결과값을 반환할 수 있다. 이 문제에서는 a라는 리스트가 함수의 매개변수가 된다. ans라는 변수를 통해 리스트의 모든 요소를 더한 값을 얻는다. *comment: sum 함수를 이용하면 아래와 같이 훨씬 간..
4344번: 평균은 넘겠지 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다. www.acmicpc.net C = int(input()) for i in range(C): score = list(map(int, input().split())) average = sum(score[1:])/score[0] count = 0 for j in score[1:]: if j > average: count += 1 print(f'{count/score[0] * 100:.3f}%') *key point: 리스트의 슬라이싱 방법을 이용하여 특정 범위만을 활용한다. 소수점 자리수를 제한하기 위해서는 여러 방법들이 있지만 그 중 f-string을 활용하는 방법을 ..
8958번: OX퀴즈 "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수 www.acmicpc.net N = int(input()) for i in range(N): result = list(input()) count = 0 score = 0 for j in range(len(result)): if result[j] == 'O': count += 1 score += count else: count = 0 print(score) *key point: 반복문, 조건문을 활용하여 list의 요소들에 대한 주어진 계산을 수행한다. count, sco..
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 등의 함수를 이용하면 리스트의 요소들에 대한 계산을 쉽게 수행할 수 있다.
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문을 활용하여 두개의 정수가 입력되지 않은 경우 에러가 발생하면 반복문을 빠져나가도록 한다.
- Total
- Today
- Yesterday
- 24313
- Wil
- 2053
- 17103
- 13909
- 4134
- 5597
- 벡준
- 25192
- til
- 항해+
- MySQL
- 항해 플러스
- 2903
- programmer
- SQL
- 코육대
- 24060
- Programmers
- Python
- 20920
- 10807
- 25501
- 1269
- 2738
- 13241
- 2587
- 24723
- 백준
- 26069
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |