1065번: 한수 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 www.acmicpc.net def hansu(a): cnt = 0 for i in range(1, a + 1): a = list(map(int, str(i))) if i < 100: cnt += 1 elif a[0] - a[1] == a[1] - a[2]: cnt += 1 return cnt N = int(input()) print(hansu(N)) *key point: 한수의 개수를 찾는 함수를 만들어 활용한다. 이 때 str, map, list 등의 함수를 활용하면 변수를 만드는데 수월..
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 등의 함수를 이용하면 리스트의 요소들에 대한 계산을 쉽게 수행할 수 있다.
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라는 메서드가 사용되었다.
- Total
- Today
- Yesterday
- Python
- 5597
- 벡준
- programmer
- til
- 25501
- 20920
- 24313
- 코육대
- 1269
- 13909
- 10807
- 17103
- Programmers
- MySQL
- SQL
- 2053
- 4134
- 백준
- 24723
- 25192
- 항해 플러스
- 2903
- Wil
- 2587
- 24060
- 13241
- 항해+
- 26069
- 2738
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |