문제는 위와 같으며 위 문제의 경우 데이터 개수가 최대 5,000,000 개이므로 NlogN 정렬 알고리즘을 통해 겨우 문제를 해결할 수 있습니다. 파이썬 코드는 다음과 같습니다. from sys import stdin n, k = map(int, stdin.readline().split()) nums = list(map(int, stdin.readline().split())) nums.sort() print(nums[k - 1]) 병합 정렬을 직접 구현하여 문제를 푸는 경우는 제출할 때 pypy3 로 하면 좀 더 빠르게 계산되기 때문에 시간초과 에러를 해결할 수 있습니다. from sys import stdin # 병합 정렬 이용 def merge_sort(array): if len(array) == ..
문제는 위와 같으면 주어지는 수의 개수가 1,000,000 개까지 이므로 파이썬이 일반적으로 1초에 20,000,000 번의 연산을 수행한다고 할 때 NlogN 의 시간 복잡도를 가지는 정렬 알고리즘을 통해 문제를 해결할 수 있습니다. NlogN 의 시간 복잡도를 가지는 정렬 알고리즘은 병합 정렬, 퀵 정렬, 힙 정렬 등이 있으며 기본적으로 파이썬에 내장된 sort() 메소드 또한 NlogN 의 시간 복잡도를 가진다고 할 수 있습니다. 먼저, 파이썬에 내장된 함수를 사용하는 코드를 살펴보겠습니다. from sys import stdin n = int(stdin.readline()) nums = [int(stdin.readline()) for _ in range(n)] nums.sort() print("\..
문제는 위와 같으며 주어지는 N의 범위가 9이하이기 때문에 모든 경우의 수를 다 계산하는 방향으로 풀이를 해 보았습니다. 모든 경우의 수를 얻기 위해 우선 조합 가능한 연산자 리스트를 재귀함수를 사용하여 생성하였고 이후 연산자 하나하나를 숫자 사이에 넣은 뒤 eval 함수를 사용하여 문자열 그대로 계산되도록 하여 결과를 비교하고 그 값이 0이면 숫자와 연산자 조합을 그대로 출력하도록 하였습니다. 파이썬 코드는 다음과 같습니다. from sys import stdin import copy def recursive(array, length): if len(array) == length: operator_list.append(copy.deepcopy(array)) # 깊은 복사를 통해 연산자 리스트를 저장 r..
문제는 위와 같으며 피보나치 수는 대표적인 재귀 문제이기 때문에 처음에 재귀 방식을 사용하였지만 시간 초과가 발생하여 단순히 for 문을 돌면서 문제를 해결하였습니다. 먼저 피보나치 수열을 사용한 파이썬 코드입니다. from sys import stdin def fibonacci(num): if num == 0: return 0 if num == 1: return 1 return fibonacci(num - 1) + fibonacci(num - 2) n = int(stdin.readline()) print(fibonacci(n)) 위 코드는 시간 초과 에러가 발생하기 때문에 for 문을 사용한 파이썬 코드를 보겠습니다. from sys import stdin n = int(stdin.readline())..
문제는 위와 같으며 이 문제의 경우 계수 정렬 알고리즘을 사용하여 해결할 수 있습니다. 계수 정렬(Counting Sort) 알고리즘을 간략하게 살펴보면 배열의 인덱스 값을 특정한 데이터의 값으로 여기는 정렬 방법입니다. 배열의 크기는 데이터를 포함할 수 있도록 설정하고 해당 인덱스의 수가 등장한 횟수를 세는 방식입니다. 이 알고리즘은 주어지는 수는 많지만 수의 범위가 제한적일 때 효율적으로 사용할 수 있습니다. 파이썬 코드를 보면 다음과 같습니다. from sys import stdin n = int(stdin.readline()) nums = [0 for _ in range(10001)] # 배열의 크기는 10001 이고, 0으로 초기화 => [0] * 10001 로 써도 됨 for _ in rang..
- Total
- Today
- Yesterday
- DFS
- Combination
- 순열
- 에라토스테네스의 체
- search
- spring
- 조합
- SWIFT
- permutation
- CodePipeline
- ionic
- cloudfront
- Algorithm
- Dynamic Programming
- array
- EC2
- string
- Baekjoon
- ECR
- map
- BFS
- sort
- AWS
- java
- CodeCommit
- 소수
- programmers
- 프로그래머스
- CodeDeploy
- 수학
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |