
2828๋ฒ: ์ฌ๊ณผ ๋ด๊ธฐ ๊ฒ์
์๊ทผ์ด๋ ์ค๋ฝ์ค์์ ๋ฐ๊ตฌ๋๋ฅผ ์ฎ๊ธฐ๋ ์ค๋๋ ๊ฒ์์ ํ๋ค. ์คํฌ๋ฆฐ์ N์นธ์ผ๋ก ๋๋์ด์ ธ ์๋ค. ์คํฌ๋ฆฐ์ ์๋์ชฝ์๋ M์นธ์ ์ฐจ์งํ๋ ๋ฐ๊ตฌ๋๊ฐ ์๋ค. (M<N) ํ๋ ์ด์ด๋ ๊ฒ์์ ํ๋ ์ค์ ๋ฐ๊ตฌ๋๋ฅผ
www.acmicpc.net
๋ฌธ์
์๊ทผ์ด๋ ์ค๋ฝ์ค์์ ๋ฐ๊ตฌ๋๋ฅผ ์ฎ๊ธฐ๋ ์ค๋๋ ๊ฒ์์ ํ๋ค. ์คํฌ๋ฆฐ์ N์นธ์ผ๋ก ๋๋์ด์ ธ ์๋ค. ์คํฌ๋ฆฐ์ ์๋์ชฝ์๋ M์นธ์ ์ฐจ์งํ๋ ๋ฐ๊ตฌ๋๊ฐ ์๋ค. (M<N) ํ๋ ์ด์ด๋ ๊ฒ์์ ํ๋ ์ค์ ๋ฐ๊ตฌ๋๋ฅผ ์ผ์ชฝ์ด๋ ์ค๋ฅธ์ชฝ์ผ๋ก ์ด๋ํ ์ ์๋ค. ํ์ง๋ง, ๋ฐ๊ตฌ๋๋ ์คํฌ๋ฆฐ์ ๊ฒฝ๊ณ๋ฅผ ๋์ด๊ฐ๋ฉด ์ ๋๋ค. ๊ฐ์ฅ ์ฒ์์ ๋ฐ๊ตฌ๋๋ ์ผ์ชฝ M์นธ์ ์ฐจ์งํ๊ณ ์๋ค.
์คํฌ๋ฆฐ์ ์์์ ์ฌ๊ณผ ์ฌ๋ฌ ๊ฐ๊ฐ ๋จ์ด์ง๋ค. ๊ฐ ์ฌ๊ณผ๋ N์นธ์ค ํ ์นธ์ ์๋จ์์ ๋จ์ด์ง๊ธฐ ์์ํ๋ฉฐ, ์คํฌ๋ฆฐ์ ๋ฐ๋ฅ์ ๋ฟ์๋๊น์ง ์ง์ ์ผ๋ก ๋จ์ด์ง๋ค. ํ ์ฌ๊ณผ๊ฐ ๋ฐ๋ฅ์ ๋ฟ๋ ์ฆ์, ๋ค๋ฅธ ์ฌ๊ณผ๊ฐ ๋จ์ด์ง๊ธฐ ์์ํ๋ค.
๋ฐ๊ตฌ๋๊ฐ ์ฌ๊ณผ๊ฐ ๋จ์ด์ง๋ ์นธ์ ์ฐจ์งํ๊ณ ์๋ค๋ฉด, ๋ฐ๊ตฌ๋๋ ๊ทธ ์ฌ๊ณผ๊ฐ ๋ฐ๋ฅ์ ๋ฟ์ ๋, ์ฌ๊ณผ๋ฅผ ๋ด์ ์ ์๋ค. ์๊ทผ์ด๋ ์ฌ๊ณผ๋ฅผ ๋ชจ๋ ๋ด์ผ๋ ค๊ณ ํ๋ค. ์ด๋, ๋ฐ๊ตฌ๋์ ์ด๋ ๊ฑฐ๋ฆฌ์ ์ต์๊ฐ์ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ N๊ณผ M์ด ์ฃผ์ด์ง๋ค. (1 โค M < N โค 10) ๋์งธ ์ค์ ๋จ์ด์ง๋ ์ฌ๊ณผ์ ๊ฐ์ J๊ฐ ์ฃผ์ด์ง๋ค. (1 โค J โค 20) ๋ค์ J๊ฐ ์ค์๋ ์ฌ๊ณผ๊ฐ ๋จ์ด์ง๋ ์์น๊ฐ ์์๋๋ก ์ฃผ์ด์ง๋ค.
์ถ๋ ฅ
๋ชจ๋ ์ฌ๊ณผ๋ฅผ ๋ด๊ธฐ ์ํด์ ๋ฐ๊ตฌ๋๊ฐ ์ด๋ํด์ผ ํ๋ ๊ฑฐ๋ฆฌ์ ์ต์๊ฐ์ ์ถ๋ ฅํ๋ค.

ํ์ด๊ณผ์

๋ฌธ์ ์ ์ค๋ช ์ ์์ ๊ฐ๋ค.
- n์ ์คํฌ๋ฆฐ์ ํฌ๊ธฐ.
- m์ ๋ฐ๊ตฌ๋์ ๊ธธ์ด ( ์์์ง์ ์ 1 )
- j๋ ๋จ์ด์ง๋ ์ฌ๊ณผ์ ๊ฐ์ ( ๋ค์ด์ค๋ ์์๋๋ก ๋จ์ด์ง๋ค. )
์์ ์์ ์ ํ์ด๋ฅผ ์ ์ด๋ณด๋ฉด
1๋ฒ์งธ๋ก ๋จ์ด์ง๋ ์ฌ๊ณผ๋ 1๋ฒ์ ๋จ์ด์ง๊ธฐ๋๋ฌธ์ ์์ง์ด์ง์์๋ ๋๊ณ
2๋ฒ์งธ๋ก ๋จ์ด์ง๋ ์ฌ๊ณผ๋ 5๋ฒ์ ๋จ์ด์ง๊ธฐ๋๋ฌธ์ 4๋ฒ๊น์ง ์ด๋์ ํด์ผ ์ฌ๊ณผ๋ฅผ ๋ฐ์ ์ ์๋ค.
( m์ด 2์ด๊ธฐ๋๋ฌธ์ 4๋ฒ๊น์ง๋ง ์ด๋ํด๋ 5๋ฒ๊น์ง ๋ฒ์์์ ๋ค์ด์จ๋ค. )
3๋ฒ์งธ๋ก ๋จ์ด์ง๋ ์ฌ๊ณผ๋ 3๋ฒ์ ๋จ์ด์ง๊ธฐ๋๋ฌธ์ ๊ธฐ์กด 4๋ฒ์์น์ ์๋ ๋ฐ๊ตฌ๋๋ฅผ 3๋ฒ์ผ๋ก ์ด๋ํด์ค์ผํ๋ค.
๊ทธ๋์ 2๋ฒ์์ 3 ์์ง์ด๊ณ 3๋ฒ์์ 1 ์์ง์ฌ์ 3 + 1 ๋ก ์์ ์ถ๋ ฅ๊ฐ์ด 4๊ฐ ๋๋ ํ์์ด๋ค.
๊ทธ๋์ ํด๋น๋ก์ง์ 2๋ฒ์จฐ ๊ฐ์ด ์ฆ๊ฐ์ํด์ ์์ผ๋ก ๊ฐ๋ ๊ฒฝ์ฐ์ 3๋ฒ์งธ์ ๊ฐ์ด ๊ฐ์๋ฅผ ํด์ ๋ค๋ก๊ฐ๋ ๊ฒฝ์ฐ ์ด 2๊ฐ์ง๊ฐ ์์ด
ํ์ฌ์์น + ๋ฐ๊ตฌ๋์ ๊ธธ์ด๋ณด๋ค ์ฌ๊ณผ๊ฐ ๋จ์ด์ง ์์น๊ฐ ๋ ๋ฉ๋ฆฌ์๋ค๋ฉด ์์ผ๋ก ์ด๋์ ํด์ผํ๋ ๊ฒ์ด๊ณ ,
( ํ์ฌ์์น + ๋ฐ๊ตฌ๋์ ๊ธธ์ด < ์ฌ๊ณผ๊ฐ ๋จ์ด์ง์์น )
ํ์ฌ์์น + ๋ฐ๊ตฌ๋์ ๊ธธ์ด๋ณด๋ค ์ฌ๊ณผ๊ฐ ๋จ์ด์ง ์์น๊ฐ ๋ ๋ค์ ์๋ค๋ฉด ๋ค๋ก ์ด๋์ ํ๋ ๋ก์ง์ผ๋ก ๊ตฌ์ฑ์ ํ์๋ค.
( ํ์ฌ์์น + ๋ฐ๊ตฌ๋์ ๊ธธ์ด > ์ฌ๊ณผ๊ฐ ๋จ์ด์ง์์น )
code
#include <iostream>
int main(void)
{
int n, m, j, temp, end;
int count = 0, place = 1;
std::cin >> n >> m >> j;
for (int i = 0; i < j; i++) {
std::cin >> temp;
if (place + m - 1 < temp) {
end = temp - (place + m - 1);
count += end;
place = (place + end);
}
else if (place > temp) {
count += place - temp;
place = temp;
}
}
std::cout << count;
return (0);
}

ํ๊ธฐ
๋จธ๋ฆฌ์์ผ๋ก ์ ๋ฆฌ์์ฒด๊ฐ ์ฝ๊ฒ๋์ง์์ ๊ฝค๋ ํ์ด์ ์๊ฐ์ด ์ค๋๊ฑธ๋ฆฐ ๊ฑฐ ๊ฐ๋ค.
'Algorithm > ๋ฌธ์ ํ์ด' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 13301๋ฒ - ํ์ผ ์ฅ์๋ฌผ (C++) (0) | 2023.08.15 |
---|---|
[๋ฐฑ์ค] 2579๋ฒ - ๊ณ๋จ ์ค๋ฅด๊ธฐ (C++) (0) | 2023.08.14 |
[๋ฐฑ์ค] 1904๋ฒ - 01ํ์ผ (C++) (0) | 2023.08.12 |
[๋ฐฑ์ค] 2097๋ฒ - ์กฐ์ฝ๋ (C++) (0) | 2023.08.11 |
[๋ฐฑ์ค] 9251๋ฒ - LCS (C++) (0) | 2023.08.09 |

2828๋ฒ: ์ฌ๊ณผ ๋ด๊ธฐ ๊ฒ์
์๊ทผ์ด๋ ์ค๋ฝ์ค์์ ๋ฐ๊ตฌ๋๋ฅผ ์ฎ๊ธฐ๋ ์ค๋๋ ๊ฒ์์ ํ๋ค. ์คํฌ๋ฆฐ์ N์นธ์ผ๋ก ๋๋์ด์ ธ ์๋ค. ์คํฌ๋ฆฐ์ ์๋์ชฝ์๋ M์นธ์ ์ฐจ์งํ๋ ๋ฐ๊ตฌ๋๊ฐ ์๋ค. (M<N) ํ๋ ์ด์ด๋ ๊ฒ์์ ํ๋ ์ค์ ๋ฐ๊ตฌ๋๋ฅผ
www.acmicpc.net
๋ฌธ์
์๊ทผ์ด๋ ์ค๋ฝ์ค์์ ๋ฐ๊ตฌ๋๋ฅผ ์ฎ๊ธฐ๋ ์ค๋๋ ๊ฒ์์ ํ๋ค. ์คํฌ๋ฆฐ์ N์นธ์ผ๋ก ๋๋์ด์ ธ ์๋ค. ์คํฌ๋ฆฐ์ ์๋์ชฝ์๋ M์นธ์ ์ฐจ์งํ๋ ๋ฐ๊ตฌ๋๊ฐ ์๋ค. (M<N) ํ๋ ์ด์ด๋ ๊ฒ์์ ํ๋ ์ค์ ๋ฐ๊ตฌ๋๋ฅผ ์ผ์ชฝ์ด๋ ์ค๋ฅธ์ชฝ์ผ๋ก ์ด๋ํ ์ ์๋ค. ํ์ง๋ง, ๋ฐ๊ตฌ๋๋ ์คํฌ๋ฆฐ์ ๊ฒฝ๊ณ๋ฅผ ๋์ด๊ฐ๋ฉด ์ ๋๋ค. ๊ฐ์ฅ ์ฒ์์ ๋ฐ๊ตฌ๋๋ ์ผ์ชฝ M์นธ์ ์ฐจ์งํ๊ณ ์๋ค.
์คํฌ๋ฆฐ์ ์์์ ์ฌ๊ณผ ์ฌ๋ฌ ๊ฐ๊ฐ ๋จ์ด์ง๋ค. ๊ฐ ์ฌ๊ณผ๋ N์นธ์ค ํ ์นธ์ ์๋จ์์ ๋จ์ด์ง๊ธฐ ์์ํ๋ฉฐ, ์คํฌ๋ฆฐ์ ๋ฐ๋ฅ์ ๋ฟ์๋๊น์ง ์ง์ ์ผ๋ก ๋จ์ด์ง๋ค. ํ ์ฌ๊ณผ๊ฐ ๋ฐ๋ฅ์ ๋ฟ๋ ์ฆ์, ๋ค๋ฅธ ์ฌ๊ณผ๊ฐ ๋จ์ด์ง๊ธฐ ์์ํ๋ค.
๋ฐ๊ตฌ๋๊ฐ ์ฌ๊ณผ๊ฐ ๋จ์ด์ง๋ ์นธ์ ์ฐจ์งํ๊ณ ์๋ค๋ฉด, ๋ฐ๊ตฌ๋๋ ๊ทธ ์ฌ๊ณผ๊ฐ ๋ฐ๋ฅ์ ๋ฟ์ ๋, ์ฌ๊ณผ๋ฅผ ๋ด์ ์ ์๋ค. ์๊ทผ์ด๋ ์ฌ๊ณผ๋ฅผ ๋ชจ๋ ๋ด์ผ๋ ค๊ณ ํ๋ค. ์ด๋, ๋ฐ๊ตฌ๋์ ์ด๋ ๊ฑฐ๋ฆฌ์ ์ต์๊ฐ์ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ N๊ณผ M์ด ์ฃผ์ด์ง๋ค. (1 โค M < N โค 10) ๋์งธ ์ค์ ๋จ์ด์ง๋ ์ฌ๊ณผ์ ๊ฐ์ J๊ฐ ์ฃผ์ด์ง๋ค. (1 โค J โค 20) ๋ค์ J๊ฐ ์ค์๋ ์ฌ๊ณผ๊ฐ ๋จ์ด์ง๋ ์์น๊ฐ ์์๋๋ก ์ฃผ์ด์ง๋ค.
์ถ๋ ฅ
๋ชจ๋ ์ฌ๊ณผ๋ฅผ ๋ด๊ธฐ ์ํด์ ๋ฐ๊ตฌ๋๊ฐ ์ด๋ํด์ผ ํ๋ ๊ฑฐ๋ฆฌ์ ์ต์๊ฐ์ ์ถ๋ ฅํ๋ค.

ํ์ด๊ณผ์

๋ฌธ์ ์ ์ค๋ช ์ ์์ ๊ฐ๋ค.
- n์ ์คํฌ๋ฆฐ์ ํฌ๊ธฐ.
- m์ ๋ฐ๊ตฌ๋์ ๊ธธ์ด ( ์์์ง์ ์ 1 )
- j๋ ๋จ์ด์ง๋ ์ฌ๊ณผ์ ๊ฐ์ ( ๋ค์ด์ค๋ ์์๋๋ก ๋จ์ด์ง๋ค. )
์์ ์์ ์ ํ์ด๋ฅผ ์ ์ด๋ณด๋ฉด
1๋ฒ์งธ๋ก ๋จ์ด์ง๋ ์ฌ๊ณผ๋ 1๋ฒ์ ๋จ์ด์ง๊ธฐ๋๋ฌธ์ ์์ง์ด์ง์์๋ ๋๊ณ
2๋ฒ์งธ๋ก ๋จ์ด์ง๋ ์ฌ๊ณผ๋ 5๋ฒ์ ๋จ์ด์ง๊ธฐ๋๋ฌธ์ 4๋ฒ๊น์ง ์ด๋์ ํด์ผ ์ฌ๊ณผ๋ฅผ ๋ฐ์ ์ ์๋ค.
( m์ด 2์ด๊ธฐ๋๋ฌธ์ 4๋ฒ๊น์ง๋ง ์ด๋ํด๋ 5๋ฒ๊น์ง ๋ฒ์์์ ๋ค์ด์จ๋ค. )
3๋ฒ์งธ๋ก ๋จ์ด์ง๋ ์ฌ๊ณผ๋ 3๋ฒ์ ๋จ์ด์ง๊ธฐ๋๋ฌธ์ ๊ธฐ์กด 4๋ฒ์์น์ ์๋ ๋ฐ๊ตฌ๋๋ฅผ 3๋ฒ์ผ๋ก ์ด๋ํด์ค์ผํ๋ค.
๊ทธ๋์ 2๋ฒ์์ 3 ์์ง์ด๊ณ 3๋ฒ์์ 1 ์์ง์ฌ์ 3 + 1 ๋ก ์์ ์ถ๋ ฅ๊ฐ์ด 4๊ฐ ๋๋ ํ์์ด๋ค.
๊ทธ๋์ ํด๋น๋ก์ง์ 2๋ฒ์จฐ ๊ฐ์ด ์ฆ๊ฐ์ํด์ ์์ผ๋ก ๊ฐ๋ ๊ฒฝ์ฐ์ 3๋ฒ์งธ์ ๊ฐ์ด ๊ฐ์๋ฅผ ํด์ ๋ค๋ก๊ฐ๋ ๊ฒฝ์ฐ ์ด 2๊ฐ์ง๊ฐ ์์ด
ํ์ฌ์์น + ๋ฐ๊ตฌ๋์ ๊ธธ์ด๋ณด๋ค ์ฌ๊ณผ๊ฐ ๋จ์ด์ง ์์น๊ฐ ๋ ๋ฉ๋ฆฌ์๋ค๋ฉด ์์ผ๋ก ์ด๋์ ํด์ผํ๋ ๊ฒ์ด๊ณ ,
( ํ์ฌ์์น + ๋ฐ๊ตฌ๋์ ๊ธธ์ด < ์ฌ๊ณผ๊ฐ ๋จ์ด์ง์์น )
ํ์ฌ์์น + ๋ฐ๊ตฌ๋์ ๊ธธ์ด๋ณด๋ค ์ฌ๊ณผ๊ฐ ๋จ์ด์ง ์์น๊ฐ ๋ ๋ค์ ์๋ค๋ฉด ๋ค๋ก ์ด๋์ ํ๋ ๋ก์ง์ผ๋ก ๊ตฌ์ฑ์ ํ์๋ค.
( ํ์ฌ์์น + ๋ฐ๊ตฌ๋์ ๊ธธ์ด > ์ฌ๊ณผ๊ฐ ๋จ์ด์ง์์น )
code
#include <iostream>
int main(void)
{
int n, m, j, temp, end;
int count = 0, place = 1;
std::cin >> n >> m >> j;
for (int i = 0; i < j; i++) {
std::cin >> temp;
if (place + m - 1 < temp) {
end = temp - (place + m - 1);
count += end;
place = (place + end);
}
else if (place > temp) {
count += place - temp;
place = temp;
}
}
std::cout << count;
return (0);
}

ํ๊ธฐ
๋จธ๋ฆฌ์์ผ๋ก ์ ๋ฆฌ์์ฒด๊ฐ ์ฝ๊ฒ๋์ง์์ ๊ฝค๋ ํ์ด์ ์๊ฐ์ด ์ค๋๊ฑธ๋ฆฐ ๊ฑฐ ๊ฐ๋ค.
'Algorithm > ๋ฌธ์ ํ์ด' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 13301๋ฒ - ํ์ผ ์ฅ์๋ฌผ (C++) (0) | 2023.08.15 |
---|---|
[๋ฐฑ์ค] 2579๋ฒ - ๊ณ๋จ ์ค๋ฅด๊ธฐ (C++) (0) | 2023.08.14 |
[๋ฐฑ์ค] 1904๋ฒ - 01ํ์ผ (C++) (0) | 2023.08.12 |
[๋ฐฑ์ค] 2097๋ฒ - ์กฐ์ฝ๋ (C++) (0) | 2023.08.11 |
[๋ฐฑ์ค] 9251๋ฒ - LCS (C++) (0) | 2023.08.09 |