n = int(input()) fibo_array = [0 for _ in range(n+1)] fibo_array[1] = 1 for i in range(2, n+1): fibo_array[i] = fibo_array[i-1]+fibo_array[i-2] print(fibo_array[-1]) ▼링크 https://www.acmicpc.net/problem/2748 2748번: 피보나치 수 2 문제 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n>=2)가 된다. n=17일때 까지 피보나치 수를 써보면 다음과 같다. 0, 1, 1, 2, 3..
import sys n = int(sys.stdin.readline()) num_list = [] for _ in range(n): num_list.append(int(sys.stdin.readline())) num_list.sort() print("\n".join(list(map(str, num_list)))) 파이썬 sort함수는 시간복잡도 O(nlogn)이다. ▼ 링크 https://www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net
import sys from collections import Counter n = int(sys.stdin.readline()) num_list = [] for _ in range(n): num_list.append(int(sys.stdin.readline())) num_list.sort() print(round(sum(num_list) / n)) # 산술평균 print(num_list[len(num_list) // 2]) # 중앙값 if len(num_list)>1: c = Counter(num_list).most_common(2) # 빈도수 print(c[1][0] if c[0][1] == c[1][1] else c[0][0]) else: print(num_list[0]) print(num_list..
import sys n = int(input()) u_list = [] for _ in range(n): line = sys.stdin.readline().split() u_list.append((int(line[0]), line[1])) u_list.sort(key=lambda x: x[0]) for mem in u_list: print(mem[0], mem[1]) ▼링크 https://www.acmicpc.net/problem/10814 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 작성하시오. www.acmicpc.net
import sys n = int(input()) str_list = [] for i in range(n): str_list.append(sys.stdin.readline()) str_list = list(set(str_list)) str_list.sort(key=lambda x: (len(x), x)) print("".join(str_list)) ▼링크 https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1≤N≤20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net
딕셔너리를 이용해 카운팅 정렬을 해보았으나 시간초과로 작렬히 실패했다..! import sys n = int(sys.stdin.readline()) count = {} for _ in range(n): num = int(sys.stdin.readline()) if num in count: count[num] = count[num] + 1 else: count[num] = 1 for sorted in sorted(count.items()): for i in range(sorted[1]): print(sorted[0]) import sys n = int(sys.stdin.readline()) count = [0] * 10001 for i in range(n): count[int(sys.stdin.readli..
import sys n = int(input()) loc_list = [] for _ in range(n): line = list(map(int, sys.stdin.readline().split())) loc_list.append(line) loc_list.sort(key=lambda x: ( x[1], x[0])) for loc in loc_list: print(*loc) ▼링크 https://www.acmicpc.net/problem/11651 11651번: 좌표 정렬하기 2 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두..
import sys n = int(input()) loc_list = [] for _ in range(n): line = list(map(int, sys.stdin.readline().split())) loc_list.append(line) loc_list.sort(key=lambda x: (x[0], x[1])) for loc in loc_list: print(*loc) ▼링크 https://www.acmicpc.net/problem/11650 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은..
파이썬 코드 n = int(input()) n = list(map(int, list(str(n)))) n = sorted(n, reverse=True) n = map(str, n) print(''.join(n)) ▼링크 https://www.acmicpc.net/problem/1427 1427번: 소트인사이드 첫째 줄에 정렬하고자하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net
N = int(input()) star = [] for _ in range(N): star.append(["*" for _ in range(N)]) divide = N cnt = 0 while divide != 1: divide /= 3 cnt += 1 for n in range(cnt): # 빈칸인 인덱스 구하기 idx = [i for i in range(N) if (i // 3 ** n) % 3 == 1] for i in idx: for j in idx: star[i][j] = " " # 프린트 for _ in star: print("".join(_)) ▼ 링크 https://www.acmicpc.net/problem/2447 2447번: 별 찍기 - 10 재귀적인 패턴으로 별을 찍어 보자. N이 3..