![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cbKadP/btqNiWp32Tj/CzdwYH7yOiqKdq1UvvEIB1/img.png)
문제는 위와 같으며, 주어지는 숫자를 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 ..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cdhk7N/btqNbvUmpCm/LhktbYVdvWQXYdJYs3WwW1/img.png)
문제는 위와 같으며 위 문제의 경우 데이터 개수가 최대 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) == ..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/tGs0K/btqNeHz0zPG/eaxJRdK8MyfRqC2P6r2tL1/img.png)
문제는 위와 같으면 주어지는 수의 개수가 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("\..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/dbudSm/btqNfsa6xFA/BhUJjdhpft6pgHODu2bV21/img.png)
앱을 사용하다보면 지도를 사용해야 하는데 구글 지도를 앱에 추가하고 현재 기기의 위, 경도를 가지고 와서 표시하는 방법을 알아보겠습니다. 기본적으로 구글 API 공식 문서를 참고하여 구글 지도 API 를 가져와 표시하면 됩니다. developers.google.com/maps/documentation/ios-sdk/start Getting Started | Maps SDK for iOS | Google Developers Once you’ve enabled billing, installed your preferred dependency manager and other software, and created an API key, you’re ready to download the Maps SDK for i..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/brgt5P/btqM8Qdudjy/WK1iVnULoLkrR3fGR8uPt0/img.png)
문제는 위와 같으며 주어지는 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..
- Total
- Today
- Yesterday
- 수학
- string
- sort
- permutation
- Baekjoon
- 순열
- 조합
- CodeDeploy
- AWS
- map
- CodeCommit
- 프로그래머스
- programmers
- spring
- Algorithm
- 에라토스테네스의 체
- Dynamic Programming
- cloudfront
- BFS
- SWIFT
- java
- CodePipeline
- array
- Combination
- ionic
- search
- EC2
- DFS
- 소수
- ECR
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |