- ๋ฐฑ์ค
- js
- Python
- LCs
- ์ํฐ๋
- ๋ค์ต์คํธ๋ผ
- golang
- DFS
- Union-Find
- ๊ฐ์ฅ๊ฐ๊น์ด๊ณตํต์กฐ์
- C++
- BFS
- ์น๋ฆฐ์ด
- nestjs
- go
- ์นด์นด์ค ์ฝํ
- ์๊ณ ๋ฆฌ์ฆ
- ๋นํธ๋ง์คํน
- ํ๋ฆฌ์จ๋ณด๋ฉ
- ์ฌ๋ผ์ด๋ฉ ์๋์ฐ
- ์นด์นด์ค2021
- ๋์ ํ๋ก๊ทธ๋๋ฐ
- ๋ฐฑ์๋ ํ๋ฆฌ์จ๋ณด๋ฉ
- ์ฌ๊ท
- DP
- ์ด๋ถํ์
- ์์ฝ๋
- ๋นํธ๋งต
- ํธ๋ฆฌ
- ํ๋ก๊ทธ๋๋จธ์ค
- Today
- Total
Hello Ocean! ๐ผ
[์๊ณ ๋ฆฌ์ฆ ์คํฐ๋] ๋ฐฑ์ค #1417 ๊ตญํ์์ ๋ณธ๋ฌธ
[๋ฌธ์ ]
๊ธฐํธ 1๋ฒ์ผ๋ก ์ถ๋งํ ๋ค์์ด๋ ์ ๊ฑฐ ์ ์ ํ๋ณด๋ณ ๋ํ์๋ฅผ ๋ฏธ๋ฆฌ ์ ์ ์๋ค.
๋ค์์ด๋ ๋ํ์๋ฅผ ๋ฏธ๋ฆฌ ์์๋ธ ํ, ๋ค๋ฅธ ํ๋ณด๋ฅผ ์ฐ๋ ์ฌ๋๋ค์ ๋์ผ๋ก ๋งค์ํด์ ์์ ์ด ๋น์ ๋๊ฒ ํ๋ ค๊ณ ํ๋ค.
๋ค์์ด๊ฐ ๋งค์ํด์ผ ํ ์ฌ๋์ ์ต์๊ฐ์ ๊ตฌํด๋ผ.
[Input]
N(ํ๋ณด์ ์)
๋์งธ ์ค ๋ถํฐ ๊ฐ ํ๋ณด์ ๋ํ์๊ฐ N์ค์ ๊ฑธ์ณ์ ์ ๋ ฅ๋๋ค.
[Output]
๋งค์ํด์ผ ํ ์ฌ๋์ ์ต์๊ฐ
[ํ์ด]
์์ ํ์
์ฐ์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๋ฐฉ๋ฒ์ผ๋ก ์ ๊ทผํด๋ณด์.
์ ์ฒด ํ๋ณด์ ๋ํ์๊ฐ votesNum[] ์์ ์์ฐจ์ ์ผ๋ก ์ ์ฅ๋์ด ์๋ค๊ณ ํ์.
ํ๋ณด๊ฐ 3๋ช ์ด๊ณ ๊ฐ ํ๋ณด์ ์์ ๋ํ์๊ฐ 5,7,7์ด์๋ค๊ณ ํ์.
voteNum[]์์ max ์์น๋ฅผ ๊ตฌํ๊ณ , ๋ค์์ด(๊ธฐํธ 1๋ฒ)๊ฐ ์ต๋๊ฐ์ด ์๋ ๊ฒฝ์ฐ
ํด๋น max ์์น์์ 1์ ๋นผ๊ณ , ๊ทธ ํ๋ฅผ ๋ค์์ด์๊ฒ ๋ํด์ค๋ค.
์ ๊ณผ์ ์ ๋ฐ๋ณตํด์ ๋ค์์ด์ ํ๊ฐ maxํ๋ค๊ณ ๋์ค๋ฉด, loop๋ฅผ ์ข ๋ฃํ๊ณ ์ง๊ธ๊น์ง ๋์๊ฐ loopํ์๋ฅผ printํด์ฃผ๋ฉด ๋๋ค.
๊ทธ๋ ๋ค๋ฉด, ์์ ํ์์ผ๋ก ๊ตฌํํ์ ๋ ์ ํ์๊ฐ์ ๋ง์กฑํ ์ ์์๊น?
N(ํ๋ณด์์ ์)์ ์ต๋๊ฐ์ด 1000์ด๊ณ , ๊ฐ ํ๋ณด๊ฐ ๋ํํ ์ ์๋ ์์ ์ต๋๊ฐ๋ 1000์ด๋ค.
์ด๋ฐ ์ํฉ์์์ ์ต์ ์ ๊ฒฝ์ฐ๋ ์์ ์ฌ์ง์์์ ๊ฐ๋ค.
๊ฒฐ๊ณผ์ ์ผ๋ก ์ต์ ์ ์ํฉ์์๋ 999๋ฒ๋ง loop๋ฅผ ๋๋ฆฌ๋ฉด output์ ๊ตฌํ ์ ์๊ธฐ ๋๋ฌธ์ ์์ ํ์์ผ๋ก ์ถฉ๋ถํ ๊ตฌํ์ด ๊ฐ๋ฅํ๋ค.
** ํ๋ฒ์ loop์์ ์ต๋๊ฐ์ ๊ตฌํ ๋, N๋งํผ์ ๋ณต์ก๋๊ฐ ์ถ๊ฐ๋ก ์์๋์ด ์ต์ ์ ๋ฐ๋ณตํ์๋ 1000*1000์ด๋ค.
ํ์ง๋ง ์ด ๊ฐ๋ ์ฌ์ ํ 2์ด์์ ์ถฉ๋ถํ ์ํ ๊ฐ๋ฅํ๋ค.
[์ฝ๋]
#include<stdio.h>
#include<algorithm>
using namespace std;
int main() {
int voteNum[1001] = {0,}; //์ต๋ ํ๋ณด์ ์ 1000๋ช
int N;
scanf_s("%d",&N);
for (int i = 0;i < N;i++) {
scanf_s("%d", &voteNum[i]);
}
int M = 0;
int maxCount = 0;
for (int i = 0;i < N;i++) {
if (voteNum[i] > voteNum[M])
M = i;
if (M == 0 && voteNum[i] == voteNum[M])
M = i;
}
for (int i = 0;i < N;i++) {
if (voteNum[i] == voteNum[M])
maxCount++;
}
int count=0;
while (M != 0 || maxCount > 1) {
count++;
voteNum[M]--;
voteNum[0]++;
M = 0;
maxCount = 0;
for (int i = 0;i < N;i++) {
if (voteNum[i] > voteNum[M])
M = i;
if (M == 0 && voteNum[i] == voteNum[M])
M = i;
}
for (int i = 0;i < N;i++) {
if (voteNum[i] == voteNum[M])
maxCount++;
}
}
printf("%d", count);
}
M์ ์ต๋๊ฐ์ ์ธ๋ฑ์ค
maxCount๋ ์ต๋๊ฐ์ ์ ๋ฅผ ๋ด๋ ๋ณ์์ด๋ค.
while์ ์กฐ๊ฑด์ ๋ณด๋ฉด, M์ด 0(๋ค์์ด๊ฐ 1๋ฑ)์ด์ด๋ maxCount๊ฐ 1 ์ด์์ด๋ผ๋ฉด ๋์ ์๊ฐ ์๋ค๋ ๋ป์ด๊ธฐ ๋๋ฌธ์ maxCount์ ๋ํ ์กฐ๊ฑด๋ ์ถ๊ฐํด์ฃผ์๋ค.
[์ ์ถ๊ฒฐ๊ณผ]
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์๊ณ ๋ฆฌ์ฆ ์คํฐ๋]์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํด๊ฒฐ์ ๋ต LIS (0) | 2020.04.13 |
---|---|
[์๊ณ ๋ฆฌ์ฆ ์คํฐ๋] ์๊ณ ์คํ #TRIANGLEPATH (0) | 2020.04.13 |
[C++] ๋ฐฐ์ด ๋ฉ๋ชจ๋ฆฌ ์ด๊ธฐํ (0) | 2020.04.11 |
[์๊ณ ๋ฆฌ์ฆ ์คํฐ๋] programmers, N์ผ๋ก ํํ (0) | 2020.04.04 |
[์๊ณ ๋ฆฌ์ฆ ์คํฐ๋] ๋ฐฑ์ค #2531 ํ์ ์ด๋ฐฅ (0) | 2020.04.04 |