문제는 위와 같으며 책을 입력 받아 제목을 키로 하고 해당 책이 팔린 횟수를 값으로 하는 딕셔너리를 생성한 뒤, 먼저 횟수를 기준으로 정렬하고 횟수가 같으면 제목을 사전 순으로 정렬하여 문제를 해결할 수 있습니다. 파이썬 코드는 다음과 같습니다. 여기서는 기본적으로 제공되는 sorted 함수를 이용하여 문제를 해결하였는데 이 방식 말고 먼저 최대 값을 구한 뒤, 딕셔너리에서 값이 최대 값과 같은 키의 리스트를 생성하고 그 리스트를 정렬하는 방식으로도 문제를 해결할 수 있습니다. from sys import stdin n = int(stdin.readline()) books = dict() for _ in range(n): book = stdin.readline().strip() if book in boo..
문제는 위와 같으며 단순하게 새의 숫자가 0이 될때까지 반복하여 자연수를 빼주면 해결할 수 있습니다. 단, 자연수가 남은 수의 새보다 커지는 경우 자연수를 다시 1로 변경해야 합니다. 파이썬 코드는 다음과 같습니다. from sys import stdin birds = int(stdin.readline()) num = 1 time = 0 while birds != 0: if num > birds: num = 1 birds -= num time += 1 num += 1 print(time) 자바 코드는 다음과 같습니다. import java.io.BufferedReader; import java.io.InputStreamReader; public class Main { public static void m..
문제는 위와 같으며 최대 문서의 길이가 2500 이고, 검색하고 싶은 단어의 최대 길이가 50 이므로 처음부터 순서대로 모든 경우를 검색하여 문제를 해결할 수 있습니다. 파이썬 코드는 다음과 같습니다. from sys import stdin string = stdin.readline().strip() search = stdin.readline().strip() count = 0 find_idx = 0 while find_idx = findIdx) { if (string.substring(findIdx, findIdx + word.length()).equals(word)) { count += 1; findIdx += word.length(); } else { findIdx += 1; } } System.o..
문제는 위와 같으며 위 문제의 경우 데이터 개수가 최대 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("\..
- Total
- Today
- Yesterday
- cloudfront
- CodePipeline
- 조합
- Combination
- Algorithm
- ionic
- CodeCommit
- programmers
- sort
- BFS
- string
- java
- SWIFT
- 소수
- Dynamic Programming
- 프로그래머스
- ECR
- AWS
- CodeDeploy
- 순열
- DFS
- permutation
- Baekjoon
- map
- 수학
- array
- EC2
- spring
- 에라토스테네스의 체
- search
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |