๊ท์น์ ์ฐพ์๋ด๋๊ฒ์ ์ ๋ง ์ด๋ ค์ด๊ฒ ๊ฐ๋ค. ๋ฌผ๋ก ๊ท์น์ ์ฐพ์ง ์๊ณ ๋ ๊ตฌํ์ด ๊ฐ๋ฅํ์ง๋ง, ๋ด ์์ ์ด ๋ด๋ ๋นํจ์จ์ ์ด์๊ธฐ์ ์ฐธ๊ณ ํ ๋ ํผ๋ฐ์ค์์ ์ด๋ป๊ฒ ๊ท์น์ ์ฐพ์๋์ง์ ๋ํด ์ ๋ฆฌํด๋ณด๊ณ ์ํ๋ค.
์๊ทผ์ด๋ ์์ฆ ์คํ๊ณต์ฅ์์ ์คํ์ ๋ฐฐ๋ฌํ๊ณ ์๋ค. ์๊ทผ์ด๋ ์ง๊ธ ์ฌํ๊ฐ๊ฒ์ ์คํ์ ์ ํํ๊ฒ Nํฌ๋ก๊ทธ๋จ์ ๋ฐฐ๋ฌํด์ผ ํ๋ค. ์คํ๊ณต์ฅ์์ ๋ง๋๋ ์คํ์ ๋ด์ง์ ๋ด๊ฒจ์ ธ ์๋ค. ๋ด์ง๋ 3ํฌ๋ก๊ทธ๋จ ๋ด์ง์ 5ํฌ๋ก๊ทธ๋จ ๋ด์ง๊ฐ ์๋ค.
์๊ทผ์ด๋ ๊ท์ฐฎ๊ธฐ ๋๋ฌธ์, ์ต๋ํ ์ ์ ๋ด์ง๋ฅผ ๋ค๊ณ ๊ฐ๋ ค๊ณ ํ๋ค. ์๋ฅผ ๋ค์ด, 18ํฌ๋ก๊ทธ๋จ ์คํ์ ๋ฐฐ๋ฌํด์ผ ํ ๋, 3ํฌ๋ก๊ทธ๋จ ๋ด์ง 6๊ฐ๋ฅผ ๊ฐ์ ธ๊ฐ๋ ๋์ง๋ง, 5ํฌ๋ก๊ทธ๋จ 3๊ฐ์ 3ํฌ๋ก๊ทธ๋จ 1๊ฐ๋ฅผ ๋ฐฐ๋ฌํ๋ฉด, ๋ ์ ์ ๊ฐ์์ ๋ด์ง๋ฅผ ๋ฐฐ๋ฌํ ์ ์๋ค.
์๊ทผ์ด๊ฐ ์คํ์ ์ ํํ๊ฒ Nํฌ๋ก๊ทธ๋จ ๋ฐฐ๋ฌํด์ผ ํ ๋, ๋ด์ง ๋ช ๊ฐ๋ฅผ ๊ฐ์ ธ๊ฐ๋ฉด ๋๋์ง ๊ทธ ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ฐธ๊ณ ํ ๋ ํผ๋ฐ์ค๋ฅผ ๋ณด๊ณ ๋๋ ๊ฒ์ ์ฒ์์ ์ ๊ทผํ ๋์ ๋ฐฉ๋ฒ์ด ์๋ชป๋์๋ค๋ ๊ฒ์ด๋ค. ๋๋ ์ค๋ก์ง ๊ท์น์ ์ฐพ๊ธฐ ์ํด 1ํฌ๋ก๊ทธ๋จ๋ถํฐ 20ํฌ๋ก๊ทธ๋จ๊น์ง ๊ฐ ํฌ๋ก๊ทธ๋จ๋ณ ์ต์ ๋ด์ง ์๋ฅผ ์ ๊ฑฐ๋ ๋๋๊ณ ๋๋จธ์ง๋ฅผ ์ฐพ๊ณ ์ง์ง๊ณ ๋ณถ๊ณ ๋คํ๋ฉฐ ๊ท์น์ ์ฐพ์๋ณด๋ คํ๋๋ฐ, ๋ ํผ๋ฐ์ค์์๋ ๊ฒฐ๊ณผ๋ฅผ ๋ชจ๋ ๋์ดํ๊ณ ๊ท์น์ ์ฐพ๋ ๊ฒ์ด ์๋, ๊ฒฐ๊ณผ๋ฅผ ๊ตฌํ๋ ๊ณผ์ ์์ ๊ท์น์ ์ฐพ์๋ด์๋ค.
5์ ๋ฐฐ์์ ํด๋นํ๋ ๋ด์ง์ ๊ฐ์๋ฅผ ์ฑ์๋ฃ๋๋ค.
f(5kg) = 1
f(10kg) = 2
f(15kg) = 3
f(20kg) = 4
f(5n) = n
5์ ๋ฐฐ์์์ 3kg๋ฅผ ๋ํ ๊ฐ์ด 5์ ๋ฐฐ์์ ์ต์ ๋ด์ง์์ ํ๋๋ฅผ ๋ํ ๊ฒฐ๊ณผ๋ผ๋ ๊ท์น์ ์ฐพ๋๋ค.
f(5kg + 3kg) = f(8kg) = 1
f(10kg + 3kg) = f(13kg) = 2
f(15kg + 3kg) = f(18kg) = 3
f(20kg + 3kg) = f(23kg) = 4
f(5n + 3) = n (๋จ, n > 0)
5์ ๋ฐฐ์ ๋ฟ๋ง ์๋๋ผ ๋ค๋ฅธ ์์์๋ 5kg๊ฐ ์ฆ๊ฐํ ๋๋ง๋ค ๋ด์ง์ ์๊ฐ ํ๋์ฉ ์ฆ๊ฐํ๋ ๊ฒ์ ์ ์ ์๋ค.
f(3kg) = 1
f(6kg) = 2
f(6kg + 5kg) = f(11kg) = 3
f(11kg + 5kg) = f(16kg) = 4
f(5n + 6) = n + 2
9kg์์ 5kg์ฉ ์ฆ๊ฐํ ๋์ ๊ท์น์ ์ฐพ๋๋ค.
f(9kg) = 3
f(19kg) = 5
f(24kg) = 6
f(5n - 1) = n + 1 (๋จ, n > 1)
๋ง์ง๋ง์ผ๋ก 12kg์ 5kg์ฉ ์ฆ๊ฐํ ๋์ ๊ท์น์ ์ฐพ๋๋ค.
f(12kg) = 3
f(12kg + 5kg) = f(17kg) = 5
f(17kg + 5kg) = f(22kg) = 6
f(5n + 12) = n + 4
(์ฌ์ค ์ฌ๊ธฐ๊น์ง ์ด๋ ดํ์ด ์๊ณ ๋ ์์๋ ๊ฒ ๊ฐ๋ค. 2์ฐจ์ ๋ฐฐ์ด์ ๋ง๋ค์ด์ ๊ฐ ๊ท์น์ ํตํด ๊ตฌํ ๊ฐ์ ์ ์ฅํ๋ ๋ฐฉ๋ฒ๋ ์๊ฐ๋ ํ์์ผ๋, N์ด 5000 ์ดํ์ ์๋ผ๋ ์ ์ ์๊ฐํ์ ๋ ๊ทธ๋ ๊ฒ ํจ์จ์ ์ธ ๋ฐฉ๋ฒ์ด ์๋๊ณ ๋ง๋ ๋ฐฉ๋ฒ์ด ์๋๋ผ ์๊ฐํด์ ์ ๊ฒฝ์ฐ์ง ์์์๋ค ใ ใ ... ๐ญ)
์ฌ๊ธฐ์๋ถํฐ๊ฐ ์ค์ํ๋ค. ๊ฐ ๊ท์น์์ ๋ ๋ค๋ฅธ ๊ท์น์ ์ฐพ๋ ๊ณผ์ ์ด ํ์ํ๋ค.
f(5n + 3) = n (๋จ, n > 0)
f(5n + 6) = n + 2
์ด ๊ท์น๋ค์์ ๋ ๋ค๋ฅธ ๊ท์น์ ์ฐพ์ผ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
f(5์ ๋ฐฐ์ + 1) = f(5์ ๋ฐฐ์ + 3) = (n / 5) + 1
f(5n - 1) = n + 1 (๋จ, n > 1)
f(5n + 12) = n + 4
๋์ผํ๊ฒ ์ด ๊ท์น๋ค๋ก๋ถํฐ ๋ ๋ค๋ฅธ ๊ท์น์ ์ฐพ์ผ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
f(5์ ๋ฐฐ์ + 2) = f(5์ ๋ฐฐ์ + 4) = (n / 5) + 2
๋๋จธ์ง N์ด 4์ผ ๋์ 7์ผ ๋์๋ ์ ํํ ๋๋๊ธฐ ์ด๋ ค์ฐ๋ฏ๋ก -1์ด๋ผ๋ ์กฐ๊ฑด๋ง ์ถ๊ฐํ๋ฉด ์์ฑ์ด๋ค.
์์ฝํ์๋ฉด ์ฝ๋๋ฅผ ์์ฑํ ๋ ์ ๊ฒฝ์ธ ๋ถ๋ถ์ ๋ค์๊ณผ ๊ฐ๋ค.
๋๋ฆ๋๋ก ๋ ํผ๋ฐ์ค๋ฅผ ์ฐธ๊ณ ํด์ ์์ํํ๋ฉด์ ํ์ด๋ฅผ ์์ฑํ๋๋ฐ ์์ง๋ ์ด๋ ค์ด๊ฒ ๊ฐ๋ค.. ใ ใ ์ด์ ๊ท์น์ ์ฝ๋์ ๋ น์ฌ๋ด๋ณด์.
์ฒ์ ๋ด๊ฐ ๋ฌธ์ ๋ฅผ ํ๊ธฐ ์ํด ๊ท์น์์ด ๊ตฌํํ ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ๋ค.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int bags = 0;
while(true) {
if(n % 5 == 0) {
bags += n / 5;
break;
}
n -= 3;
bags++;
if(n < 0) {
bags = -1;
break;
}
}
System.out.println(bags);
scanner.close();
}
}
๋ฐ๋๋ก ์ฐพ์ ๊ท์น์ผ๋ก ๊ตฌํํ ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ๋ค. (์์์๋ Scanner๋ฅผ ์ฌ์ฉํ์ผ๋, ์ด๋ฒ์๋ ๋ณด์กฐ ์คํธ๋ฆผ์ ์ด์ฉํด ๊ตฌํํด๋ณด์๋ค!)
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int n = Integer.parseInt(br.readLine());
int result = 0;
if(n == 4 || n == 7) {
result = -1;
} else if(n % 5 == 0) {
result = n / 5;
} else if(n % 5 == 1 || n % 5 == 3) {
result = n / 5 + 1;
} else if(n % 5 == 2 || n % 5 == 4) {
result = n / 5 + 2;
}
bw.write(result + "");
bw.flush();
bw.close();
br.close();
}
}