백준 숫자카드2 풀이 일단 처음에 문제를 보고 입력이 500,000까지의 범위에 시간 제한이 1초인 것을 보고 문제를 최소한 O(n^2) 이하의 알고리즘으로 구현해야겠다고 생각했다. 입력을 보고 이런 생각을 하는 것을 연습중인데 꽤나 도움이 되는 것 같다. 시간 내에 몇개의 원소가 있는지 확인하려면 Hash를 사용하여 숫자를 Counting하여 비교하면 되겠다고 생각했다. 이를 구현하기 위해서 collections.Counter 라이브러리를 사용했다. Counter 라이브러리의 결과값을 타겟 리스트(m_list)와 비교하여 타겟 리스트의 요소가 Counter 결과값에 존재하면 counting 한 value 값을 프린트 해주면 된다. from collections import Counter import s..
1978. 소수 찾기 풀이 소수란 1과 자신만을 약수로 갖는 수를 뜻한다. 따라서 1 이상의 수에서, 나누기를 했을 때 나머지가 0일 때마다 카운팅을 해 주는데 이때 카운팅이 1이라는 것은 1을 제외하고 자기 자신뿐이라는 뜻이다. 따라서 이때 결과를 카운팅해주면 된다. import sys sys.stdin = open("1978_소수찾기_input.txt", "r") n = int(sys.stdin.readline()) nums = list(map(int, sys.stdin.readline().split())) result = 0 for num in nums: cnt = 0 # 숫자마다 카운팅을 해야하기 때문에 초기화 if num > 1: for i in range(2, num+1): if num % i..
11399. ATM 풀이 대기시간이 최소시간이 되기 위해서는 오름차순으로 정렬이 되어야 한다. 또한 이 전의 값을 계속 누적해가며 더해준다면 어렵지 않게 답을 구할 수 있다. import sys sys.stdin = open("11399_ATM_input.txt", "r") n = int(sys.stdin.readline()) waits = list(map(int, sys.stdin.readline().split())) times = 0 result = [] waits.sort() for i in waits: times = i + times result.append(times) print(sum(result))
11047 동전0 풀이 동전이 이미 오름차순으로 정렬되어 있기 때문에 이를 거꾸로 정렬해준다. 이는 동전이 가장 큰 것부터 소거해야 가장 최소가 되는 수를 찾을 수 있기 때문이다. 그 이후에는 몫과 나머지를 이용하여 연산을 수행해주면 된다. import sys sys.stdin = open("11047_동전0_input.txt", "r") n, k = list(map(int, sys.stdin.readline().split())) coins = [int(sys.stdin.readline().rstrip()) for _ in range(n)] cnt = 0 coins.reverse() for v in range(n): count += k//coins[v] k = k % coins[v] print(count)
- Total
- Today
- Yesterday
- sqoop
- 빅데이터를지탱하는기술
- mahout
- Espher
- GROK
- kubernetes
- heapq
- Python
- 이코테
- Elasticsearch
- 빅데이터
- cka
- elasticsaerch
- 네트워크
- logstash
- DP
- Flutter
- BOJ
- CSAPP
- Algorithm
- OS
- 프로그래머스
- 백준
- kafka
- oozie
- HDFS
- CS
- Hadoop
- DFS
- 파이썬
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |