문제는 위와 같으며, 주어지는 숫자를 3으로 반복하여 나누면서 나머지를 순서대로 저장하는 방식으로 문제를 해결하였습니다. 파이썬 코드는 다음과 같습니다. def solution(n): answer = "" while n > 0: # n 이 3의 배수인 경우 if n % 3 == 0: answer = str(4) + answer[0:] # 문자열 맨 앞에 4를 추가하고 기존 문자열을 뒤에 추가 n = (n // 3) - 1 else: answer = str(n % 3) + answer[0:] # 문자열 맨 앞에 n 을 3으로 나눈 나머지를 추가하고 기존 문자열을 뒤에 추가 n = n // 3 # n 을 3으로 나눈 몫을 다시 n 에 저장 return answer 자바 코드는 다음과 같습니다. import ..
문제는 위와 같으며 위 문제의 경우 데이터 개수가 최대 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())..
- Total
- Today
- Yesterday
- ECR
- BFS
- 에라토스테네스의 체
- Combination
- ionic
- permutation
- Algorithm
- 수학
- spring
- AWS
- 프로그래머스
- CodeDeploy
- Baekjoon
- CodeCommit
- 순열
- CodePipeline
- string
- search
- EC2
- array
- programmers
- SWIFT
- java
- cloudfront
- DFS
- 조합
- map
- Dynamic Programming
- 소수
- sort
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |