๐ ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋?
๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ 'ํ์ฌ ์ํฉ์์ ์ง๊ธ ๋น์ฅ ์ข์ ๊ฒ๋ง ๊ณ ๋ฅด๋ ๋ฐฉ๋ฒ'์ผ๋ก, ๋จ์ํ์ง๋ง ๊ฐ๋ ฅํ ๋ฌธ์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด๋ค. ์ฐ๋ฆฌ๋ ํน์ ๋ฌธ์ ๋ฅผ ๋ง๋ฌ์ ๋, ๋จ์ํ ํ์ฌ ์ํฉ์์ ๊ฐ์ฅ ์ข์ ๋ณด์ด๋ ๊ฒ๋ง์ ์ ํํด๋ ๋ฌธ์ ๋ฅผ ํ ์ ์๋์ง๋ฅผ ํ์ ํ ์ ์์ด์ผ ํ๋ค.
๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ๊ธฐ์ค์ ๋ฐ๋ผ ์ข์ ๊ฒ์ ์ ํํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ฏ๋ก,
๋ฌธ์ ์์ '๊ฐ์ฅ ํฐ ์์๋๋ก', '๊ฐ์ฅ ์์ ์์๋๋ก'์ ๊ฐ์ ๊ธฐ์ค์ ์๊ฒ ๋ชจ๋ฅด๊ฒ ์ ์ํด์ค๋ค.
๋์ฒด๋ก ์ด๋ฌํ ๊ธฐ์ค์ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๋ง์กฑ์ํฌ ์ ์์ผ๋ฏ๋ก ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ ์ ๋ ฌ๊ณผ ์ง์ ์ด๋ค ์ถ์ ๋๋ค.
๋๋ถ๋ถ์ ๋ฌธ์ ๋ ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ด์ฉํ์ ๋ '์ต์ ์ ํด'๋ฅผ ์ฐพ์ ์ ์์ ๊ฐ๋ฅ์ฑ์ด ํฌ๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์, ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๋ฌธ์ ์ ํด๊ฒฐ์ฑ ์ ์ฐพ์์ ๋๋ ๊ทธ๊ฒ์ด ์ ๋นํ์ง ๊ฒํ ํ๋ ๊ฒ์ด ๋งค์ฐ ์ค์ํ๋ค.
๋ง์ฝ ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค๊ณ ์๊ฐ๋๋ฉด, DP๋ ๊ทธ๋ํ๋ก ํด๊ฒฐํ ์ ์์์ง ๊ณ ๋ คํด ๋ณผ ์ ์๋ค.
๊ทธ๋ผ ์ด์ ์์ ๋ฅผ ํ์ด๋ณด์.
1๏ธโฃ ๊ฑฐ์ค๋ฆ๋
Q. ๋น์ ์ ์์์ ์ ๊ณ์ฐ์ ๋์์ฃผ๋ ์ ์์ด๋ค. ์นด์ดํฐ์๋ ๊ฑฐ์ค๋ฆ๋์ผ๋ก ์ฌ์ฉํ 500์, 100์, 50์, 10์์ง๋ฆฌ ๋์ ์ด ๋ฌดํํ ์กด์ฌํ๋ค๊ณ ๊ฐ์ ํ๋ค. ์๋์๊ฒ ๊ฑฐ์ฌ๋ฌ ์ค์ผ ํ ๋์ด N์์ผ ๋, ๊ฑฐ์ฌ๋ฌ ์ค์ผ ํ ๋์ ์ ์ต์ ๊ฐ์๋ฅผ ๊ตฌํ๋ผ. ๋จ, ๊ฑฐ์ฌ๋ฌ ์ค์ผ ํ ๋ N์ ํญ์ 10์ ๋ฐฐ์์ด๋ค.
A. ์ด๋ ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋ํ์ ์ธ ๋ฌธ์ ์ด๋ค. ํด๊ฒฐ๋ฒ์ '๊ฐ์ฅ ํฐ ํํ ๋จ์๋ถํฐ' ๋์ ๊ฑฐ์ฌ๋ฌ ์ฃผ๋ ๊ฒ์ด๋ค.
์๋๋ ๋ด๊ฐ ์๊ฐํด์ ์ง ์ฝ๋๋ค.
package org.example;
public class Ex3_1 {
public static void main(String[] args) {
int n = 1260;
int count = 0;
count += n / 500;
n %= 500;
count += n / 100;
n %= 100;
count += n / 50;
n %= 50;
count += n / 10;
System.out.println(count);
}
}
์ด๊ฑด ์ฑ ์ ๋์์๋ ์ฝ๋. ํํ (;๏ผพโ๏ผพ;)ใ
๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ก์์ง๋ง, ๋ ํ์ฅ์ฑ์๋ ์ฝ๋์ธ ๊ฒ ๊ฐ๋ค.
๊ทธ๋ฆฌ๊ณ ๋๋ผ๋ฉด int coin ๋ณ์๋ฅผ ๋ฐ๋ก ๋ง๋ค์ง ์์์ ๊ฒ ๊ฐ์๋ฐ, ์ด๋ ๊ฒ ํ ์ด์ ๋ coinTypes[i]์ 2๋ฒ ์ ๊ทผํ๋ ๊ฒ๋ณด๋ค ๋ณ์ ํ๋๋ฅผ ์ก๋๊ฒ ์๊ฐ์ ์ธ ์ธก๋ฉด์์ ๋์์์ผ๊น? ์๋๋ฉด ๊ทธ๋ฅ ๊ฐ๋ ์ฑ์ ์ํด์..?
๊ทธ๋ฅ ์ด ๋ถ ์คํ์ผ์ธ ๊ฑธ ์๋ ๐ง
package org.example;
public class Ex3_1 {
public static void main(String[] args) {
int n = 1260;
int count = 0;
int[] coinTypes = {500, 100, 50, 10};
for (int i = 0; i < coinTypes.length; i++) {
int coin = coinTypes[i];
count += n / coin;
n %= coin;
}
System.out.println(count);
}
}
์ ๋น์ฑ
๊ฑฐ์ค๋ฆ๋ ๋ฌธ์ ๋ฅผ ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ํด๊ฒฐํ ์ ์๋ ์ด์ ๋ ๊ฐ์ง๊ณ ์๋ ๋์ ์ค์์ ํฐ ๋จ์๊ฐ ํญ์ ์์ ๋จ์์ ๋ฐฐ์์ด๋ฏ๋ก ์์ ๋จ์์ ๋์ ๋ค์ ์ข ํฉํด ๋ค๋ฅธ ํด๊ฐ ๋์ฌ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค. ์๋ฅผ ๋ค์ด 800์์ ๊ฑฐ์ฌ๋ฌ์ค์ผ ํ๋๋ฐ, ํํ ๋จ์๊ฐ 500์, 400์, 100์์ธ ๊ฒฝ์ฐ๋ฅผ ์๊ฐํด๋ณด์. ์ด ๊ฒฝ์ฐ ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก๋ ๋ต์ด 4๊ฐ(500์+100์*3)๊ฐ ๋์ค๋๋ฐ, ์ค์ ๋ก๋ 2๊ฐ(400์*2)์ด ์ต์ ์ ํด์ด๋ค.
๐ ์ฐธ๊ณ ์๋ฃ