- ๋นํธ๋ง์คํน
- ์ฌ๊ท
- BFS
- LCs
- ์ด๋ถํ์
- C++
- nestjs
- ํธ๋ฆฌ
- ์๊ณ ๋ฆฌ์ฆ
- ๋ฐฑ์ค
- ๋์ ํ๋ก๊ทธ๋๋ฐ
- ์์ฝ๋
- Union-Find
- ์น๋ฆฐ์ด
- js
- ๋นํธ๋งต
- ํ๋ก๊ทธ๋๋จธ์ค
- ํ๋ฆฌ์จ๋ณด๋ฉ
- ๋ค์ต์คํธ๋ผ
- ์นด์นด์ค ์ฝํ
- ์นด์นด์ค2021
- ์ฌ๋ผ์ด๋ฉ ์๋์ฐ
- Python
- ์ํฐ๋
- golang
- DFS
- DP
- ๋ฐฑ์๋ ํ๋ฆฌ์จ๋ณด๋ฉ
- go
- ๊ฐ์ฅ๊ฐ๊น์ด๊ณตํต์กฐ์
- Today
- Total
Hello Ocean! ๐ผ
[์๊ณ ๋ฆฌ์ฆ ์คํฐ๋] ๋ฐฑ์ค #1461 ๋์๊ด ๋ณธ๋ฌธ
๋ฌธ์
๋์๊ด ์์ ํ์ ์ฑ ์ ๋ฆฌ๋ฅผ ํ ๊ฒ์ด๋ค.
์ฌํ์ด์ ํ์ฌ ์์น๋ 0์ด๊ณ , ๊ฐ ์ฑ ๋ค์ ์์น๋ ์ ๋๊ฐ์ด 10000์ดํ์ธ ์ ์์ด๋ฉฐ, 0 ์์น์ ์๋ ์ฑ ์ ์๋ค.
ํ ๋ฒ์ M๊ฐ์ ์ฑ ์ ์ด๋ฐํ ์ ์๋ค๊ณ ํ ๋, ์ฑ ์ ๋ชจ๋ ์ ๋ฆฌํ๋๋ฐ ํ์ํ ์ต์ ๊ฑธ์ํ์๋ฅผ ๊ตฌํด๋ผ .
(๋ง์ง๋ง ์ฑ ์ ์ ๋ฆฌํ ํ์๋ ๋ค์ ์์ ์ผ๋ก ๋์์ฌ ํ์๊ฐ ์๋ค.)
์ ๋ ฅ
N : ์ฑ ์ ๊ฐ์ (1<=N<=10000)
M : ํ ๋ฒ์ ์ด๋ฐํ ์ ์๋ ์ฑ ์ ๊ฐ์ (1<=M<=10000)
๊ฐ ์ฑ ์ ์์น๊ฐ N๊ฐ์ ์ซ์๋ก ์ ๋ ฅ๋๋ค. (-10000<=x<=10000)
ํ์ด
์ฌ์ฉํ ์๊ณ ๋ฆฌ์ฆ์ ๋ค์๊ณผ ๊ฐ๋ค.
์์น๊ฐ -์ธ ์ฑ ๊ณผ +์ธ ์ฑ ์ ๋ฐ๋ก ๋๋์ด ์๊ฐํ๋ ๊ฒ์ด ์ข๋ค.
(-์ +์ธ ์ฑ ์ ํ๋ฒ์ ๋ค๊ณ ์ด๋ฐํ ๊ฒฝ์ฐ, ๊ฒฝ๋ก ์ฌ์ด์ ์ด์ฐจํผ ์์ ์ ์ง๋๊ฒ ๋๊ธฐ ๋๋ฌธ์ด๋ค.)
๊ฐ์ฅ ๋จผ ์ฑ ์ ๊ธฐ์ค์ผ๋ก M๊ฐ๋ฅผ ์ ๋ฆฌํ ๋ ๋๋ ์๋ณต ๊ฑธ์ํ์๋ ๊ฐ์ฅ ๋จผ ์ฑ ์ ์์น์ ์ํฅ์ ๋ฐ๋๋ค.
ex) 100, 10, 1 ์ด๋ ๊ฒ ์ธ๊ฐ์ ์ฑ ์ ์ ๋ฆฌํ๋ค๊ณ ํ์ ๋ ์ด์ฐจํผ 100์์น์ ๋ค๋ ์์ผ ํ๊ธฐ ๋๋ฌธ์ด๋ค.
๋ง์ง๋ง ์ฑ ์ ์ ๋ฆฌํ ์ดํ์๋ ๋์์ฌ ํ์๊ฐ ์๋ค. ์ฌํ์ด๊ฐ k๋ฒ ์๋ค๊ฐ๋ค ํด์ผํ๋ ๊ฒฝ์ฐ์
๊ฑฐ๋ฆฌ๊ฐ ์ ์ผ ๋จผ ์ฑ ์ ์ ๋ฆฌํ ๋ ๋์์ค์ง ์๋๊ฒ์ด ์ ๋ฆฌํ๋ค.
ex) 36, 80 ๋๊ถ์ ์ฑ ์ ์ ๋ฆฌํ๊ณ , ํ ๋ฒ์ ํ๊ถ์ ์ฑ ๋ง ์ด๋ฐํ ์ ์๋ค๊ณ ํ์.
๋ง์ง๋ง์ 80์ ์ ๋ฆฌํ๋ ๊ฒฝ์ฐ : 36*2+80 = 152
๋ง์ง๋ง์ 36์ ์ ๋ฆฌํ๋ ๊ฒฝ์ฐ : 80*2+36 = 196
๋ฐ๋ผ์ ๊ฐ์ฅ ๋ฉ~๋ฆฌ ๊ฐ์ผํ๋ ๊ฒฝ์ฐ๋ฅผ ๋ง์ง๋ง์ ์ ๋ฆฌํ๋ ๊ฒ์ด ์ ๋ฆฌํ๋ค๋ ๊ฒ์ ์ ์ ์๋ค.
์์
๋ณด๋ผ์์ผ๋ก ์น ํ ์๋ค(๊ฐ ๊ทธ๋ฃน์ ์ต๋๊ฐ) ์ค์ ๊ฐ์ฅ ํฐ ๊ฐ์ ๋ง์ง๋ง์ ์ ๋ฆฌํ๋ ๊ฒ์ผ๋ก ํด์ ํธ๋๋ก ๊ณ์ฐํ์๋ค.
์ฝ๋
#include <stdio.h>
#include <algorithm>
using namespace std;
bool desc(int a, int b) { return a > b; } //๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ์ ์ํ ํจ์
int main() {
int n, m,temp;
int pnum = 0; int nnum = 0; //๊ฐ๊ฐ ๊ฑฐ๋ฆฌ๊ฐ ์์/์์์ธ ์ฑ
์ ๊ฐ์๋ฅผ ๋ด๋ ๋ณ์
int pbooks[10001]; int nbooks[10001];
scanf_s("%d %d", &n, &m);
for (int i = 0;i < n;i++) {
scanf_s("%d", &temp);
if (temp > 0)
pbooks[pnum++]=temp;
else
nbooks[nnum++] = -1 * temp;
}
sort(pbooks, pbooks + pnum,desc); //๊ฑฐ๋ฆฌ๊ฐ ๋จผ ์์๋ก ์ ๋ ฌ
sort(nbooks, nbooks + nnum,desc);
int idx = 0; //๊ฐ ๋ฐฐ์ด์ ์ฑ
๋ค์ด ๊ฑฐ๋ฆฌ๊ฐ ๋จผ ์์ผ๋ก ์ ๋ ฌ๋์ด ์๊ธฐ ๋๋ฌธ์ 0๋ฒ์ฑ
์ ๊ฐ์ฅ ๋จผ์ ์ ๋ฆฌ
int result = 0;
int M = 0;
while (idx < pnum) { //์ฑ
์ ๋ชจ๋ ์ ๋ฆฌํ ๋ ๊น์ง !
//์ฌ์ค ์ด if๋ฌธ์ ์ด์ฐจํผ ์ฑ
๋ค์ด ์ ๋ ฌ๋์ด์๊ธฐ ๋๋ฌธ์ ๊ตณ์ด ํ์ ์๋๋ฏ..
if (pbooks[idx] > M) { //์ง๊ธ ์ ๋ฆฌํ ์ฑ
์ด ๊ฐ์ฅ ๋ฉ๋ฆฌ์๋ ์ฑ
์ผ ๊ฒฝ์ฐ
result += pbooks[idx]; //๊ฐ์ฅ ๋จผ ๊ฑฐ๋ฆฌ๋ ํธ๋! ํ๋ฒ๋ง ๋ํ๊ธฐ!
result += M; //M์ด ํธ๋๋ผ์ ํ๋ฒ๋ง ๋ํด์ ธ์์๊ธฐ ๋๋ฌธ์ ์๋ณต๊ฑฐ๋ฆฌ๋ก ๊ณ์ฐํด์ฃผ๊ธฐ ์ํด ํ๋ฒ ๋ ๋ํจ
M = pbooks[idx]; //M๊ฐ ๊ฐฑ์
}
else
result += (pbooks[idx] * 2); //์๋ณต ๊ฑฐ๋ฆฌ ๋ํด์ฃผ๊ธฐ
idx += m; //ํ ๋ฒ์ m๊ถ ์ฉ ์ ๋ฆฌํ๋๊น
}
idx = 0; //idx ์ด๊ธฐํ
while (idx < nnum) {
if (nbooks[idx] > M) { //ํ์์๋..๋ถ๋ถ..
result += nbooks[idx];
result += M;
M = nbooks[idx];
}
else
result += (nbooks[idx] * 2);
idx += m;
}
printf("%d", result);
}
์ฑ ๊ณผ ์์ ๊ฐ์ ๊ฑฐ๋ฆฌ๋ฅผ ์ด์ฉํ ๋ฌธ์ ์ด๊ธฐ ๋๋ฌธ์, - ๊ฑฐ๋ฆฌ์ธ ๊ฒฝ์ฐ์ ์์๋ก ๋ฐ๊พธ์ด์ ์ ์ฅํด์ฃผ์๋ค.
(๊ทธ๋์ ์์ ์์์ ์์๋ฅผ ๋ค๋ฅธ ๋ฐฐ์ด์ ์ ์ฅํด์ ๋ฐ๋ก ์ฒ๋ฆฌํ์๋ค.)
์ต์ข ๊ฑฐ๋ฆฌ ๊ณ์ฐ์ ์ด์ฉ๋๋ ์ซ์๋ค์ ๋ฐ๋ก ๋ฐฐ์ด์ ์ ์ฅํ๊ธฐ๊ฐ ์ซ์ด์, while๋ฌธ์ ๋๋ฉด์ ๋ฐ๋ก๋ฐ๋ก ๋ํ๋, max๊ฐ์ ๋งค๋ฒ ๊ฐฑ์ ํด ์ฃผ๋ฉด์ ์ต์๊ฑฐ๋ฆฌ๋ฅผ ๊ณ์ฐํ๋ค.
๋ค๋ฅธ ํ์ด๋ค
https://kimpika.tistory.com/55
[๋ฐฑ์ค] 1461: ๋์๊ด
๋ฐฑ์ค ์จ๋ผ์ธ ์ ์ง(BOJ) 1461๋ฒ: ๋์๊ด https://www.acmicpc.net/problem/1461 #์ฌ์ฉ์ธ์ด: C++ 1. ๋ฌธ์ : ์ธ์ค์ด๋ ๋์๊ด์์ ์ผํ๋ค. ๋์๊ด์ ๊ฐ๋ฐฉ์๊ฐ์ด ๋๋์ ์ธ์ค์ด๋ ์ฌ๋๋ค์ด ๋ง๊ตฌ ๋์ ์ฑ ์ ๋ค์ ๊ฐ์ ธ๋ค..
kimpika.tistory.com
์ด ๋ถ์ ๋ฒกํฐ๋ฅผ ์ด์ฉํด์ ํธ์ จ๋ค. + ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ
๊ทธ๋ฆฌ๋ ๋ฏธ๋๋ฅผ ์๊ฐํ์ง ์๊ณ ๊ฐ ๋จ๊ณ์์ ๊ฐ์ฅ ์ต์ ์ ์ ํ์ ํ๋ ๊ธฐ๋ฒ์ด๋ค.
์ด๋ ๊ฒ ๊ฐ ๋จ๊ณ์์ ์ต์ ์ ์ ํ์ ํ ๊ฒ์ด ์ ์ฒด์ ์ผ๋ก๋ ์ต์ ์ด๊ธธ ๋ฐ๋ผ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
https://zoonvivor.tistory.com/137
[BOJ] ๋ฐฑ์ค 1461 - ๋์๊ด (์๋ฐ)
์๋ฎฌ๋ ์ด์ ....,, ์์ด๋์ด๋ ๊ฐ๋จํ๋ค. ๊ฑฐ๋ฆฌ ๋จผ M๊ฐ์ฉ ๋ฌถ์ด ๊ฑฐ๋ฆฌ๋ฅผ ํฉ์น๋ค. ์ต์ข ์ ์ผ๋ก ํฉ์น ๊ฑฐ๋ฆฌ์์ ๊ฐ์ฅ ๋ฉ์๋ ๊ฑฐ๋ฆฌ๋ฅผ ๋บ๋ค. ๋๋ ์์์ ์์๋ฅผ ๋๋ ์ ๊ณ์ฐํ๋ค. ๋ฒ์๊ฐ ์์๊ธฐ์ ๊ฐ๋ฅํ์ง๋ง ๋ด๊ฐ ๊ตฌํํ๊ฒ..
zoonvivor.tistory.com
์ด ๋ถ์ ์ฐ์ ์์ ํ๋ฅผ ์ฌ์ฉํ์ จ๋ค.
์ฌ์ฉํ ๋ณ์ ํ์ ์ ์กฐ๊ธ์ฉ ๋ค๋ฅด์ง๋ง ๊ทผ๋ณธ์ ์ธ ์๊ณ ๋ฆฌ์ฆ์ ๋ค๋ค ๋น์ทํ ๊ฒ ๊ฐ๋ค.
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์๊ณ ์คํ] ์์ํ #Quantize, ์ฑ 8.9์ (0) | 2020.05.11 |
---|---|
[์๊ณ ๋ฆฌ์ฆ ์คํฐ๋] ์๊ณ ์คํ #PI (0) | 2020.04.27 |
[์๊ณ ๋ฆฌ์ฆ ์คํฐ๋] ๋ฐฑ์ค #9251 LCS (0) | 2020.04.19 |
[์๊ณ ๋ฆฌ์ฆ ์คํฐ๋]์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํด๊ฒฐ์ ๋ต LIS (0) | 2020.04.13 |
[์๊ณ ๋ฆฌ์ฆ ์คํฐ๋] ์๊ณ ์คํ #TRIANGLEPATH (0) | 2020.04.13 |