본문 바로가기

프로그래밍 공부131

[SWEA] Difficulty 2 문제풀이(23) 최빈수 구하기 (1204) from collections import Counter T = int(input()) for _ in range(T): n = int(input()) numbers = list(map(int, input().split())) answer = 0 counter = Counter(numbers).most_common() counter.sort(key=lambda x: (-x[1], -x[0])) print(f'#{n} {counter[0][0]}') 수도 요금 경쟁 (1284) T = int(input()) for test_case in range(1, T + 1): p, q, r, s, w = map(int, input().split()) answer = min(w * p, q.. 2022. 10. 28.
[이코테] 정렬 알고리즘 풀이 # 국영수 a = [(5, 1, 5), (3, 5, 5), (3, 1, 9), (3, 1, 1)] a.sort() print(a) n = int(input()) students = [] for _ in range(n): students.append(input().split()) students.sort(key = lambda x: (-int(x[1]), int(x[2]), -int(x[3]), x[0])) # 안테나 n = int(input()) data = list(map(int, input().split())) data.sort() print(data[(n-1) // 2]) # 실패율 def solution(N, stages): answer = [] length = len(stages) for i i.. 2022. 10. 27.
정렬 알고리즘 (시간복잡도 비교) 이진탐색 순차탐색 합병정렬, 퀵정렬, 힙정렬 버블정렬, 삽입정렬, 선택정렬 / 쉘정렬 O(logn) O(n) O(nlogn) O(n2) / O(n1.25) 분할과 정복 알고리즘 >> 문제의 입력을 2/n으로 분할하고, 이를 다시 합병하여 문제를 해결하는 방식 이진탐색 O(logn) >> 탐색범위의 중간부터 시작하여, 비교를 통해 절반의 숫자를 제거하는 방식으로, 문제가 2개로 분화되나, 그중 한개는 정렬할 필요가 없으며, 부분문제의 크기가 1/2로 감소하는 알고리즘 합병정렬 O(nlogn) >> 문제의 입력을 2개의 부분문제로 분할, 부분문제의 크기가 1/2로 감소, 분할 정복 후 합병하는 방식 문제가 a로 분할되고, 부분문제의 크기가 1/b로 감소하는 알고리즘 퀵정렬 O(nlogn) >> 기준 데이터를.. 2022. 10. 27.
[SWEA] Difficulty 1 문제풀이(19) 거꾸로 출력해 보아요 (1545) num = int(input()) for i in range(num, -1, -1): print(i, end=' ') 간단한 N의 약수 (1933) n = int(input()) for i in range(1, n + 1): if n % i == 0: print(i, end=' ') 1대1 가위바위보 (1936) a, b = map(int, input().split()) if (a == 1 and b == 2) or (a == 1 and b == 3) or (a == 2 and b == 3): print("A") else: print("B") 아주 간단한 계산기 (1938) a, b = map(int, input().split()) print(a + b) print(a .. 2022. 10. 12.