01-24 13:36
Recent Posts
Recent Comments
Tags
- Naver Cloud
- ํ๋ก๋ณด๋ ธ
- ์จ์ผ๋ํ
- DATABASE
- ์๋ฐ
- JOBํ๊ณ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- RaspberryPi
- TSQL
- DB
- ICT๋ฉํ ๋ง
- ict๊ณต๋ชจ์
- API๋ง์ผํ๋ ์ด์ค
- mysql
- ์กํ๊ณ
- ํ์ด์
- SQL
- ์คํฝ๋ ํ
- appetizer
- ํ์ด์ฌ
- Java
- ์๋์ด๋ ธ
- linux
- ํ์ด์๊ณต๋ชจ์
- python
- ์ด๋ธ์
- ์คํฝ์ค๋น
- ICT
- API MarketPlace ๊ธ๋ก๋ฒ ์ํฌํฐ์ฆ
- Spring
- Today
- Total
miinsun
[BAEKJOON] ๋ฐฑ์ค ์ด๋ถ๊ฒ์ 2805 :: ๋๋ฌด ์๋ฅด๊ธฐ ๋ณธ๋ฌธ
Algorithm/Baekjoon
[BAEKJOON] ๋ฐฑ์ค ์ด๋ถ๊ฒ์ 2805 :: ๋๋ฌด ์๋ฅด๊ธฐ
miinsun 2022. 4. 7. 18:19
๐ฌ ๋ฌธ์ ์ค๋ช
์๊ทผ์ด๋ ๋๋ฌด M๋ฏธํฐ๊ฐ ํ์ํ๋ค. ๊ทผ์ฒ์ ๋๋ฌด๋ฅผ ๊ตฌ์ ํ ๊ณณ์ด ๋ชจ๋ ๋งํด๋ฒ๋ ธ๊ธฐ ๋๋ฌธ์, ์ ๋ถ์ ๋ฒ๋ชฉ ํ๊ฐ๋ฅผ ์์ฒญํ๋ค. ์ ๋ถ๋ ์๊ทผ์ด๋ค ์ง ๊ทผ์ฒ์ ๋๋ฌด ํ ์ค์ ๋ํ ๋ฒ๋ชฉ ํ๊ฐ๋ฅผ ๋ด์ฃผ์๊ณ , ์๊ทผ์ด๋ ์๋ก ๊ตฌ์ ํ ๋ชฉ์ฌ์ ๋จ๊ธฐ๋ฅผ ์ด์ฉํด์ ๋๋ฌด๋ฅผ ๊ตฌํ ๊ฒ์ด๋ค.
๋ชฉ์ฌ์ ๋จ๊ธฐ๋ ๋ค์๊ณผ ๊ฐ์ด ๋์ํ๋ค. ๋จผ์ , ์๊ทผ์ด๋ ์ ๋จ๊ธฐ์ ๋์ด H๋ฅผ ์ง์ ํด์ผ ํ๋ค. ๋์ด๋ฅผ ์ง์ ํ๋ฉด ํฑ๋ ์ด ๋ ์ผ๋ก๋ถํฐ H๋ฏธํฐ ์๋ก ์ฌ๋ผ๊ฐ๋ค. ๊ทธ ๋ค์, ํ ์ค์ ์ฐ์ํด์๋ ๋๋ฌด๋ฅผ ๋ชจ๋ ์ ๋จํด๋ฒ๋ฆฐ๋ค. ๋ฐ๋ผ์, ๋์ด๊ฐ H๋ณด๋ค ํฐ ๋๋ฌด๋ H ์์ ๋ถ๋ถ์ด ์๋ฆด ๊ฒ์ด๊ณ , ๋ฎ์ ๋๋ฌด๋ ์๋ฆฌ์ง ์์ ๊ฒ์ด๋ค. ์๋ฅผ ๋ค์ด, ํ ์ค์ ์ฐ์ํด์๋ ๋๋ฌด์ ๋์ด๊ฐ 20, 15, 10, 17์ด๋ผ๊ณ ํ์. ์๊ทผ์ด๊ฐ ๋์ด๋ฅผ 15๋ก ์ง์ ํ๋ค๋ฉด, ๋๋ฌด๋ฅผ ์๋ฅธ ๋ค์ ๋์ด๋ 15, 15, 10, 15๊ฐ ๋ ๊ฒ์ด๊ณ , ์๊ทผ์ด๋ ๊ธธ์ด๊ฐ 5์ธ ๋๋ฌด์ 2์ธ ๋๋ฌด๋ฅผ ๋ค๊ณ ์ง์ ๊ฐ ๊ฒ์ด๋ค. (์ด 7๋ฏธํฐ๋ฅผ ์ง์ ๋ค๊ณ ๊ฐ๋ค) ์ ๋จ๊ธฐ์ ์ค์ ํ ์ ์๋ ๋์ด๋ ์์ ์ ์ ๋๋ 0์ด๋ค.
์๊ทผ์ด๋ ํ๊ฒฝ์ ๋งค์ฐ ๊ด์ฌ์ด ๋ง๊ธฐ ๋๋ฌธ์, ๋๋ฌด๋ฅผ ํ์ํ ๋งํผ๋ง ์ง์ผ๋ก ๊ฐ์ ธ๊ฐ๋ ค๊ณ ํ๋ค. ์ด๋, ์ ์ด๋ M๋ฏธํฐ์ ๋๋ฌด๋ฅผ ์ง์ ๊ฐ์ ธ๊ฐ๊ธฐ ์ํด์ ์ ๋จ๊ธฐ์ ์ค์ ํ ์ ์๋ ๋์ด์ ์ต๋๊ฐ์ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
๐จ ์ ์ถ๋ ฅ ์
์ ๋ ฅ
- ์ฒซ์งธ ์ค์ ๋๋ฌด์ ์ N๊ณผ ์๊ทผ์ด๊ฐ ์ง์ผ๋ก ๊ฐ์ ธ๊ฐ๋ ค๊ณ ํ๋ ๋๋ฌด์ ๊ธธ์ด M์ด ์ฃผ์ด์ง๋ค. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000)
- ๋์งธ ์ค์๋ ๋๋ฌด์ ๋์ด๊ฐ ์ฃผ์ด์ง๋ค. ๋๋ฌด์ ๋์ด์ ํฉ์ ํญ์ M๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ธฐ ๋๋ฌธ์, ์๊ทผ์ด๋ ์ง์ ํ์ํ ๋๋ฌด๋ฅผ ํญ์ ๊ฐ์ ธ๊ฐ ์ ์๋ค.
- ๋์ด๋ 1,000,000,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ ์ ์ ๋๋ 0์ด๋ค.
์ถ๋ ฅ
- ์ ์ด๋ M๋ฏธํฐ์ ๋๋ฌด๋ฅผ ์ง์ ๊ฐ์ ธ๊ฐ๊ธฐ ์ํด์ ์ ๋จ๊ธฐ์ ์ค์ ํ ์ ์๋ ๋์ด์ ์ต๋๊ฐ์ ์ถ๋ ฅํ๋ค.
์์ ์ ๋ ฅ 1)
4 7
20 15 10 17
์์ ์ถ๋ ฅ 1)
15
์์ ์ ๋ ฅ 2)
5 20
4 42 40 26 46
์์ ์ถ๋ ฅ 2)
5 20
4 42 40 26 46
โ
โ
๐ป Main.java
- '1654 - ๋์ ์๋ฅด๊ธฐ ๋ฌธ์ '์ ์ ์ฌํ๋ค.
- ์ด๋ถ๊ฒ์, ๊ฒฐ์ ์๊ณ ๋ฆฌ์ฆ์ ์ด์ฉํ๋ค.
- lt์ rt๋ฅผ ์ค์ ํ๊ณ ์ต๋๊ฐ์ ์ฐพ์ ๋๊น์ง, mid๊ฐ์ ์กฐ์ ํด์ค๋ค.
- mid๊ฐ์ด int๋ฒ์๋ฅผ ์ด๊ณผํ ์๋ ์๊ธฐ๋๋ฌธ์ ๋ฐ์ดํฐํ์ long์ผ๋ก ํด์คฌ๋ค.
/* ๋ฐฑ์ค ๊ทธ๋ํ - 2805 :: ๋๋ฌด ์๋ฅด๊ธฐ */
import java.util.*;
import java.io.*;
public class Main {
static public long count (int[] arr, long mid) {
long total = 0;
// mid๋ก ๋บ์ ๋, ๋จ๋ ๋๋ฌด ๊ธธ์ด์ ํฉ
for(int x : arr) {
// ๋จ๋ ๊ฐ์ด ์๋ ๊ฒฝ์ฐ์๋ง
if(x - mid > 0)
total += x - mid;
}
return total;
}
public static void main(String[] args) throws IOException{
Scanner sc = new Scanner(System.in);
// ๋๋ฌด์ ์
int n = sc.nextInt();
// ์ง์ผ๋ก ๊ฐ์ ธ๊ฐ ๋๋ฌด ๊ธธ์ด
int m = sc.nextInt();
// ๋๋ฌด ์ ๋ณด ์
๋ ฅ
int [] arr = new int [n];
for(int i = 0; i < n; i++) {
arr[i] = sc.nextInt();
}
// ๋ฐฐ์ด ์ ๋ ฌ, lt,rt ์ด๊ธฐํ
Arrays.sort(arr);
long lt = 1;
long rt = arr[n-1];
long answer = 0;
// ์ด๋ถ ํ์ (๊ฒฐ์ ์๊ณ ๋ฆฌ์ฆ)
while(lt <= rt) {
long mid = (lt + rt) / 2;
// count()๋ ์ ํจ๊ฐ์ ์ฐพ๋ ํจ์
if(count(arr, mid) >= m) {
answer = mid;
// ์ต๋๊ฐ์ ์ฐพ๊ธฐ ๋๋ฌธ์ ์ ํจ๊ฐ์ ์ฐพ์ผ๋ฉด ๋ฒ์๋ฅผ ๋ํ์ค๋ค.
lt = mid + 1;
}
else
rt = mid - 1;
}
System.out.println(answer);
sc.close();
}
}
'Algorithm > Baekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BAEKJOON] ๋ฐฑ์ค ์ด๋ถ๊ฒ์ 10815 :: ์ซ์ ์นด๋ (0) | 2022.04.07 |
---|---|
[BAEKJOON] ๋ฐฑ์ค ์ด๋ถ๊ฒ์ 2110 :: ๊ณต์ ๊ธฐ ์ค์น (0) | 2022.04.07 |
[BAEKJOON] ๋ฐฑ์ค ์ด๋ถ๊ฒ์ 1654 :: ๋์ ์๋ฅด๊ธฐ (0) | 2022.04.07 |
[BAEKJOON] ๋ฐฑ์ค ๊ทธ๋ํ 1967 :: ํธ๋ฆฌ์ ์ง๋ฆ (0) | 2022.04.07 |
[BAEKJOON] ๋ฐฑ์ค ๊ทธ๋ํ 11725:: ํธ๋ฆฌ์ ๋ถ๋ชจ ์ฐพ๊ธฐ (0) | 2022.04.05 |
Comments