- λ°±μλ ν리μ¨λ³΄λ©
- BFS
- μΉλ¦°μ΄
- λ€μ΅μ€νΈλΌ
- λ°±μ€
- μ¬λΌμ΄λ© μλμ°
- LCs
- nestjs
- C++
- λΉνΈλ§΅
- μκ³ λ¦¬μ¦
- Union-Find
- νλ‘κ·Έλλ¨Έμ€
- λμ νλ‘κ·Έλλ°
- Python
- μμ½λ
- go
- golang
- DFS
- DP
- κ°μ₯κ°κΉμ΄κ³΅ν΅μ‘°μ
- λΉνΈλ§μ€νΉ
- μΉ΄μΉ΄μ€ μ½ν
- js
- μν°λ
- μ¬κ·
- νΈλ¦¬
- μ΄λΆνμ
- ν리μ¨λ³΄λ©
- μΉ΄μΉ΄μ€2021
- Today
- Total
Hello Ocean! πΌ
[νλ‘κ·Έλλ¨Έμ€] μ κ΅ μ¬μ¬ λ³Έλ¬Έ
λ¬Έμ μ€λͺ
nλͺ μ΄ μ κ΅μ¬μ¬λ₯Ό μν΄ μ€μ μμ κΈ°λ€λ¦¬κ³ μμ΅λλ€. κ° μ κ΅μ¬μ¬λμ μλ μ¬μ¬κ΄λ§λ€ μ¬μ¬νλλ° κ±Έλ¦¬λ μκ°μ λ€λ¦ λλ€.
μ²μμ λͺ¨λ μ¬μ¬λλ λΉμ΄μμ΅λλ€. ν μ¬μ¬λμμλ λμμ ν λͺ λ§ μ¬μ¬λ₯Ό ν μ μμ΅λλ€. κ°μ₯ μμ μ μλ μ¬λμ λΉμ΄ μλ μ¬μ¬λλ‘ κ°μ μ¬μ¬λ₯Ό λ°μ μ μμ΅λλ€. νμ§λ§ λ 빨리 λλλ μ¬μ¬λκ° μμΌλ©΄ κΈ°λ€λ Έλ€κ° κ·Έκ³³μΌλ‘ κ°μ μ¬μ¬λ₯Ό λ°μ μλ μμ΅λλ€.
λͺ¨λ μ¬λμ΄ μ¬μ¬λ₯Ό λ°λλ° κ±Έλ¦¬λ μκ°μ μ΅μλ‘ νκ³ μΆμ΅λλ€.
μ κ΅μ¬μ¬λ₯Ό κΈ°λ€λ¦¬λ μ¬λ μ n, κ° μ¬μ¬κ΄μ΄ ν λͺ μ μ¬μ¬νλλ° κ±Έλ¦¬λ μκ°μ΄ λ΄κΈ΄ λ°°μ΄ timesκ° λ§€κ°λ³μλ‘ μ£Όμ΄μ§ λ, λͺ¨λ μ¬λμ΄ μ¬μ¬λ₯Ό λ°λλ° κ±Έλ¦¬λ μκ°μ μ΅μκ°μ return νλλ‘ solution ν¨μλ₯Ό μμ±ν΄μ£ΌμΈμ.
μ νμ¬ν
μ
κ΅μ¬μ¬λ₯Ό κΈ°λ€λ¦¬λ μ¬λμ 1λͺ
μ΄μ 1,000,000,000λͺ
μ΄νμ
λλ€.
κ° μ¬μ¬κ΄μ΄ ν λͺ
μ μ¬μ¬νλλ° κ±Έλ¦¬λ μκ°μ 1λΆ μ΄μ 1,000,000,000λΆ μ΄νμ
λλ€.
μ¬μ¬κ΄μ 1λͺ
μ΄μ 100,000λͺ
μ΄νμ
λλ€.
μ μΆλ ₯ μ
n times return
6 [7, 10] 28
μ μΆλ ₯ μ μ€λͺ
κ°μ₯ 첫 λ μ¬λμ λ°λ‘ μ¬μ¬λ₯Ό λ°μΌλ¬ κ°λλ€.
7λΆμ΄ λμμ λ, 첫 λ²μ§Έ μ¬μ¬λκ° λΉκ³ 3λ²μ§Έ μ¬λμ΄ μ¬μ¬λ₯Ό λ°μ΅λλ€.
10λΆμ΄ λμμ λ, λ λ²μ§Έ μ¬μ¬λκ° λΉκ³ 4λ²μ§Έ μ¬λμ΄ μ¬μ¬λ₯Ό λ°μ΅λλ€.
14λΆμ΄ λμμ λ, 첫 λ²μ§Έ μ¬μ¬λκ° λΉκ³ 5λ²μ§Έ μ¬λμ΄ μ¬μ¬λ₯Ό λ°μ΅λλ€.
20λΆμ΄ λμμ λ, λ λ²μ§Έ μ¬μ¬λκ° λΉμ§λ§ 6λ²μ§Έ μ¬λμ΄ κ·Έκ³³μμ μ¬μ¬λ₯Ό λ°μ§ μκ³ 1λΆμ λ κΈ°λ€λ¦° νμ 첫 λ²μ§Έ μ¬μ¬λμμ μ¬μ¬λ₯Ό λ°μΌλ©΄ 28λΆμ λͺ¨λ μ¬λμ μ¬μ¬κ° λλ©λλ€.
νμ΄
λ¬Έμ μ μΉ΄ν
κ³ λ¦¬κ° μ΄λΆνμ μ΄κΈ°λ νμ§λ§, μ
λ ₯ λ²μλ₯Ό 보μμ λ μμ νμμΌλ‘λ μλκ² λ€λ μκ°μ΄ λ€μλ€.
λ°λΌμ μ΄λΆνμμΌλ‘ νμ΄νλ€.
μ½λ
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
unsigned long long solution(int n, vector<int> times) {
unsigned long long answer = 987654321;
unsigned long long left = 0;
unsigned long long mid = 0;
sort(times.begin(), times.end());
unsigned long long right = times[times.size()-1]*n; //μ΅λκ°
answer = right;
while (left <= right){
unsigned long long done = 0;
mid = (left + right) /2 ;
for (int time:times){
done += mid/time;
}
if (done < n) //μ£Όμ΄μ§ μκ°λμ μ¬μ¬ μλ£ x
left = mid + 1; //μκ° λ리기
else { //μ£Όμ΄μ§ μκ°μ΄ μΆ©λΆ νΉμ λ± λ§λ κ²½μ°
if (mid < answer) //κ°μ₯ λ± λ§λ μκ°μ μ°ΎκΈ° μν΄
answer = mid;
right = mid-1;
}
}
return answer;
}
24λ 8μμ λ€μ νμ΄λ΄€μ΅λλ€! (with Python)
Solution.
- μ λ ₯μ λ²μκ° ν¬κΈ° λλ¬Έμ, μμ νμμ΄ μλλΌ μ΄λΆνμμ μ¬μ©ν΄μΌ νλ€.
- λͺ¨λ μ¬λλ€μ΄ μ¬μ¬λ₯Ό λ°κΈ° μν μ΅μμ μκ°μ νμ
- 0 ~ μ΅λκ° μ¬μ΄λ₯Ό μ΄λΆνμ
- μ΅λκ°μ μ΄λ»κ² ꡬν΄μΌ νλκ°?
- λ³΄ν΅ nλͺ * maxμ¬μ¬μκ° μ μ΅λκ°μΌλ‘ μ€μ νκ³ νμ΄νλ κ² κ°μ (κ³Όκ±°μ λλ...)
- νμ§λ§, κ°μ₯ μ΅μμ μ΅λκ°!μ
- nλͺ /μ¬μ¬κ΄ μ * maxμ¬μ¬μκ°
- λͺ¨λ μ¬μ¬κ΄μκ² nλͺ μ κ³ λ₯΄κ² λΆν¬νλ©΄, μ¬μ¬κ΄ λΉ nλͺ /μ¬μ¬κ΄ μ μ μ¬λμ λ°°μ λ°κΈ° λλ¬Έ
- λ κ²½μ°λ₯Ό λͺ¨λ μ€νμμΌλ³΄μλλ°, ν
μ€νΈ3λ²μ μ μΈνκ³ μμμκ°μ΄ μ μ κ²μ νμΈν μ μλ€.
- μμμκ° : nλͺ /μ¬μ¬κ΄ μ * maxμ¬μ¬μκ° < nλͺ * maxμ¬μ¬μκ°
- μ΅λκ°μ μ΄λ»κ² ꡬν΄μΌ νλκ°?
def solution(n, times):
left = 0
right = (n // len(times)) * max(times)
answer = right
while left <= right:
mid = (left + right) // 2
done = 0
for t in times:
done += mid//t
if done >= n: # κ²μ¬μλ£
answer = min(answer, mid)
right = mid - 1
else: # μ€ν¨
left = mid + 1
return answer
'Algorithm' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[νλ‘κ·Έλλ¨Έμ€] νκ² λλ², C++ (0) | 2020.09.21 |
---|---|
[νλ‘κ·Έλλ¨Έμ€] μμ₯ (0) | 2020.09.14 |
[νλ‘κ·Έλλ¨Έμ€] μμ£Όνμ§ λͺ»ν μ μ (0) | 2020.09.07 |
[μκ³ λ¦¬μ¦] μ΅λ μ΅μ μ°ΎκΈ° (ν λλ¨ΌνΈ νΈλ¦¬) (0) | 2020.09.07 |
[μκ³ λ¦¬μ¦] νμ μκ³ λ¦¬μ¦ (μ ν, μ΄λΆ, ν΄μ, BST) (0) | 2020.08.31 |