10872번: 팩토리얼 0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오. www.acmicpc.net def factorial(N): ans = 1 if N > 0 : ans = N * factorial(N-1) return ans print(factorial(int(input()))) *key point: def를 이용하여 함수를 정의하는 과정에서 해당 함수를 사용하게 되면 재귀함수가 된다.
18870번: 좌표 압축 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X1, X2, ..., XN에 좌 www.acmicpc.net import sys N = int(input()) coord_list = list(map(int, sys.stdin.readline().split())) coord_list_sorted = sorted(list(set(coord_list))) coord_dict = {} for i in range(len(coord_list_sorted)): coord_dict[coord_list_sorted[i]] = i for ..
10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 www.acmicpc.net N = int(input()) people = [] for i in range(N): people.append(list(input().split())) people.sort(key=lambda x: int(x[0])) for person in people: print(person[0], person[1]) *key point: sort의 key 옵션을 활용(lamda 식 이용)하여 주어진 조건에 맞는 정렬이 쉽게 가능하다.
1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net N=int(input()) word_list=[] for i in range(0,N): word_list.append(input()) word_list=list(set(word_list)) word_list.sort() word_list.sort(key=len) for word in word_list: print(i) *key point: sort 함수의 key 옵션을 이용하여 길이에 따른 정렬을 수행할 수 있다. set 함수를 이용해서는 중복을 제거..
11651번: 좌표 정렬하기 2 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net N = int(input()) dot_list = [] for i in range(N): x, y = map(int, input().split()) dot_list.append([y, x]) dot_list.sort() for dot in dot_list: print(dot[1], dot[0]) *key point: 11650번 문제에서 입력값의 x, y를 바꾸어 준 뒤 정렬하여 출력 시 다시 바꾸어주면 쉽..
11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net N = int(input()) dot_list = [] for i in range(N): x, y = map(int, input().split()) dot_list.append([x, y]) dot_list.sort() for dot in dot_list: print(dot[0], dot[1]) *key point: 2차원 리스트를 활용하여 입력값을 저장한 뒤, sort 함수를 이용하면 주어진 조건에 맞는 정렬..
1427번: 소트인사이드 첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net N = int(input()) M = sorted(list(map(int, str(N))), reverse = True) for num in M: print(num, end ='') *key point: 입력받은 수의 각 자리를 요소로 가지는 리스트를 만들어 오름차순 정렬해준다. 이후 반복문을 통해 수를 순서대로 출력한다.
2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net import sys N = int(sys.stdin.readline()) num = [] count = [0] * 8001 for i in range(N): n = int(sys.stdin.readline()) num.append(n) count[n+4000] += 1 print(round(sum(num)/N)) print(sorted(num)[N//2]) mode = list(filter(lambda x: count[x] == max(count), range(len(coun..
25305번: 커트라인 시험 응시자들 가운데 1등은 100점, 2등은 98점, 3등은 93점이다. 2등까지 상을 받으므로 커트라인은 98점이다. www.acmicpc.net N, k = map(int, input().split()) x = list(map(int, input().split())) print(sorted(x)[-k]) *key point: sorted 함수는 오름차순으로 정렬하기 때문에, 정렬된 리스트를 뒤에서 부터 세어주어야한다. 내림차순으로 정렬하고 싶다면 sorted 함수의 reverse 옵션을 사용할 수 있다. sorted(x, reverse=True)
10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net import sys N = int(sys.stdin.readline()) num_list = [0] * 10001 for i in range(N): num = int(sys.stdin.readline()) num_list[num] += 1 for i in range(10001): if num_list[i] != 0: for j in range(num_list[i]): print(i) *key point: 2750, 2751번 문제와 유사하나 다루는 수의 범위가 다르기 때문에 같은 방..
- Total
- Today
- Yesterday
- Wil
- Programmers
- 2903
- 25501
- 17103
- MySQL
- 2738
- 2587
- 백준
- 4134
- 벡준
- 항해 플러스
- til
- 1269
- 24060
- 24723
- 5597
- programmer
- 2053
- SQL
- 13241
- 26069
- 24313
- 10807
- 25192
- 코육대
- 항해+
- Python
- 13909
- 20920
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |