https://www.acmicpc.net/problem/2839
๋ฌธ์
์๊ทผ์ด๋ ์์ฆ ์คํ๊ณต์ฅ์์ ์คํ์ ๋ฐฐ๋ฌํ๊ณ ์๋ค. ์๊ทผ์ด๋ ์ง๊ธ ์ฌํ๊ฐ๊ฒ์ ์คํ์ ์ ํํ๊ฒ Nํฌ๋ก๊ทธ๋จ์ ๋ฐฐ๋ฌํด์ผ ํ๋ค. ์คํ๊ณต์ฅ์์ ๋ง๋๋ ์คํ์ ๋ด์ง์ ๋ด๊ฒจ์ ธ ์๋ค. ๋ด์ง๋ 3ํฌ๋ก๊ทธ๋จ ๋ด์ง์ 5ํฌ๋ก๊ทธ๋จ ๋ด์ง๊ฐ ์๋ค.
์๊ทผ์ด๋ ๊ท์ฐฎ๊ธฐ ๋๋ฌธ์, ์ต๋ํ ์ ์ ๋ด์ง๋ฅผ ๋ค๊ณ ๊ฐ๋ ค๊ณ ํ๋ค. ์๋ฅผ ๋ค์ด, 18ํฌ๋ก๊ทธ๋จ ์คํ์ ๋ฐฐ๋ฌํด์ผ ํ ๋, 3ํฌ๋ก๊ทธ๋จ ๋ด์ง 6๊ฐ๋ฅผ ๊ฐ์ ธ๊ฐ๋ ๋์ง๋ง, 5ํฌ๋ก๊ทธ๋จ 3๊ฐ์ 3ํฌ๋ก๊ทธ๋จ 1๊ฐ๋ฅผ ๋ฐฐ๋ฌํ๋ฉด, ๋ ์ ์ ๊ฐ์์ ๋ด์ง๋ฅผ ๋ฐฐ๋ฌํ ์ ์๋ค.
์๊ทผ์ด๊ฐ ์คํ์ ์ ํํ๊ฒ Nํฌ๋ก๊ทธ๋จ ๋ฐฐ๋ฌํด์ผ ํ ๋, ๋ด์ง ๋ช ๊ฐ๋ฅผ ๊ฐ์ ธ๊ฐ๋ฉด ๋๋์ง ๊ทธ ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ N์ด ์ฃผ์ด์ง๋ค. (3 ≤ N ≤ 5000)
์ถ๋ ฅ
์๊ทผ์ด๊ฐ ๋ฐฐ๋ฌํ๋ ๋ด์ง์ ์ต์ ๊ฐ์๋ฅผ ์ถ๋ ฅํ๋ค. ๋ง์ฝ, ์ ํํ๊ฒ Nํฌ๋ก๊ทธ๋จ์ ๋ง๋ค ์ ์๋ค๋ฉด -1์ ์ถ๋ ฅํ๋ค.
ํ์ด
๊ทธ๋ฆฌ๋ ๊ฐ๋ค
์ฃผ์ด์ง ์ซ์๋ฅผ 5๋ก ๋๋์์ ๋
๋๋จธ์ง 0 -> 5ํค๋ก ๋ชซ ๋ด์ง
๋๋จธ์ง 1 -> 5ํค๋ก ๋ชซ-1 ๋ด์ง + 3ํค๋ก 2๋ด์ง
๋๋จธ์ง 2 -> 5ํค๋ก ๋ชซ-2๋ด์ง + 3ํค๋ก 4๋ด์ง
๋๋จธ์ง 3 -> 5ํค๋ก ๋ชซ-3๋ด์ง + 3ํค๋ก 6๋ด์ง
๋๋จธ์ง 4 -> 5ํค๋ก ๋ชซ-1๋ด์ง + 3ํค๋ก 3๋ด์ง
๋ก ๋๋ ์ ์๋ค
์ด ๋ ๋ต์ผ๋ก ๋์จ ๋ด์ง์์ ๊ฐ ํค๋ก๋ฅผ ๊ณฑํ๋๋ฐ
์ฃผ์ด์ง ์ซ์๋ณด๋ค ํฌ๊ฒ ๋์ค๋ฉด (์ฃผ์ด์ง ์ซ์๊ฐ ๋ ์์ผ๋ฉด)
๋ฐ๋ก -1 ์ฒ๋ฆฌ๋ฅผ ํ๋ฉด ๋๋ค
// ํ์ด : https://whkakrkr.tistory.com
#include <iostream>
using namespace std;
int main() {
int n, five, three;
cin >> n;
int share = n/5;
int remain = n%5;
if(remain==0) {
five = share;
three = 0;
} else if(remain==1) {
five = share-1;
three = 2;
} else if(remain==2) {
five = share-2;
three = 4;
} else if(remain==3) {
five = share;
three = 1;
} else {
five = share-1;
three = 3;
}
int ans;
if(five < 0 || five*5+three*3 > n) {
ans = -1;
} else {
ans = five+three;
}
cout << ans;
return 0;
}
'๐ BOJ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ][C++] ๋ฐฑ์ค 1037๋ฒ: ์ฝ์ (0) | 2024.03.08 |
---|---|
[BOJ][C++] ๋ฐฑ์ค 2849๋ฒ: ํ์ด์ ๋ฐํด (0) | 2024.03.06 |
[BOJ][C++] ๋ฐฑ์ค 14503๋ฒ: ๋ก๋ด ์ฒญ์๊ธฐ (0) | 2023.11.23 |
[BOJ][C++] ๋ฐฑ์ค 1296๋ฒ: ๋์นญ ์ฐจ์งํฉ (0) | 2023.10.16 |
[BOJ][C++] ๋ฐฑ์ค 1002๋ฒ: ํฐ๋ (0) | 2023.10.12 |