๋ฌธ์
์๊ทผ์ด๋ ์์ฆ ์คํ๊ณต์ฅ์์ ์คํ์ ๋ฐฐ๋ฌํ๊ณ ์๋ค. ์๊ทผ์ด๋ ์ง๊ธ ์ฌํ๊ฐ๊ฒ์ ์คํ์ ์ ํํ๊ฒ Nํฌ๋ก๊ทธ๋จ์ ๋ฐฐ๋ฌํด์ผ ํ๋ค. ์คํ๊ณต์ฅ์์ ๋ง๋๋ ์คํ์ ๋ด์ง์ ๋ด๊ฒจ์ ธ ์๋ค. ๋ด์ง๋ 3ํฌ๋ก๊ทธ๋จ ๋ด์ง์ 5ํฌ๋ก๊ทธ๋จ ๋ด์ง๊ฐ ์๋ค.
์๊ทผ์ด๋ ๊ท์ฐฎ๊ธฐ ๋๋ฌธ์, ์ต๋ํ ์ ์ ๋ด์ง๋ฅผ ๋ค๊ณ ๊ฐ๋ ค๊ณ ํ๋ค. ์๋ฅผ ๋ค์ด, 18ํฌ๋ก๊ทธ๋จ ์คํ์ ๋ฐฐ๋ฌํด์ผ ํ ๋, 3ํฌ๋ก๊ทธ๋จ ๋ด์ง 6๊ฐ๋ฅผ ๊ฐ์ ธ๊ฐ๋ ๋์ง๋ง, 5ํฌ๋ก๊ทธ๋จ 3๊ฐ์ 3ํฌ๋ก๊ทธ๋จ 1๊ฐ๋ฅผ ๋ฐฐ๋ฌํ๋ฉด, ๋ ์ ์ ๊ฐ์์ ๋ด์ง๋ฅผ ๋ฐฐ๋ฌํ ์ ์๋ค.
์๊ทผ์ด๊ฐ ์คํ์ ์ ํํ๊ฒ Nํฌ๋ก๊ทธ๋จ ๋ฐฐ๋ฌํด์ผ ํ ๋, ๋ด์ง ๋ช ๊ฐ๋ฅผ ๊ฐ์ ธ๊ฐ๋ฉด ๋๋์ง ๊ทธ ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ N์ด ์ฃผ์ด์ง๋ค. (3 ≤ N ≤ 5000)
์ถ๋ ฅ
์๊ทผ์ด๊ฐ ๋ฐฐ๋ฌํ๋ ๋ด์ง์ ์ต์ ๊ฐ์๋ฅผ ์ถ๋ ฅํ๋ค. ๋ง์ฝ, ์ ํํ๊ฒ Nํฌ๋ก๊ทธ๋จ์ ๋ง๋ค ์ ์๋ค๋ฉด -1์ ์ถ๋ ฅํ๋ค.
์์ ์ ๋ ฅ 1
18
์์ ์ถ๋ ฅ 1
4
์์ ์ ๋ ฅ 2
4
์์ ์ถ๋ ฅ 2
-1
์์ ์ ๋ ฅ 3
6
์์ ์ถ๋ ฅ 3
2
์์ ์ ๋ ฅ 4
9
์์ ์ถ๋ ฅ 4
3
์์ ์ ๋ ฅ 5
11
์์ ์ถ๋ ฅ 5
3
ํ์ด
๊ฐ์ฅ ์ ์ ๊ฐ์์ ๋ด์ง๋ฅผ ์ฎ๊ธฐ๋ ค๋ฉด 5ํค๋ก ๋ด์ง๊ฐ ์ต๋ํ ๋ง์์ผ ํ๋ค.
๋ฐ๋ผ์ 5ํค๋ก ๋ด์ง๋ฅผ ๋จผ์ ๊ณ์ฐํ๊ณ ๋จ์ ์์ 3ํค๋ก ๋ด์ง์ ๋ด์ ์ ์๋์ง ๊ณ์ฐํ๋ค.
1. ์ ๋ ฅ๋ฐ์ n์ 5๋ก ๋๋ ๊ฐ์ five์ ์ ์ฅ, 5๋ก ๋๋ ๋๋จธ์ง๋ฅผ 3์ผ๋ก ๋๋ ๊ฐ์ three์ ์ ์ฅ
( five๋ 5ํค๋ก ๋ด์ง์ ๊ฐ์, three๋ 3ํค๋ก ๋ด์ง์ ๊ฐ์ )
2. 5 * five + 3 * three๋ฅผ total์ ์ ์ฅํ๊ณ , total์ด ์ ๋ ฅ๋ฐ๋ n๊ณผ ๊ฐ์์ง ๋๊น์ง ๋ฌดํ๋ฃจํ๋ฅผ ๋๋ค
3. 5ํค๋ก ๊ฐ์๋ฅผ ํ๋ ์ค์ด๊ณ ( five-- ), ๋๋จธ์ง๋ฅผ 3์ผ๋ก ๋๋ three์ ์ ์ฅ, total์ ๊ณ์ฐํ๋ค.
( ๋๋จธ์ง๊ฐ 3์ผ๋ก ๋๋ ์ง์ง ์์ผ๋ฉด total์ด n๊ณผ ๊ฐ์์ง์ง ์์ )
4. five๊ฐ 0๋ณด๋ค ์์์ง๋ฉด ์ ํํ๊ฒ n์ ๋ง๋ค ์ ์์ผ๋ฏ๋ก -1์ ์ถ๋ ฅํ๋๋ก ๋ณ์ ๊ฐ์ ์์ ํ๋ค.
import java.util.Scanner;
public class B2839 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int five = n / 5;
int three = n % 5 / 3;
int total = 5 * five + 3 * three;
while(total != n) {
five--;
three = ( n - (5 * five) ) / 3;
total = 5 * five + 3 * three;
if(five < 0) {
five = 0;
three = -1;
break;
}
}
System.out.println(five + three);
}
}