
Problem ๐ป
https://school.programmers.co.kr/learn/courses/30/lessons/120837
ํ๋ก๊ทธ๋๋จธ์ค
SW๊ฐ๋ฐ์๋ฅผ ์ํ ํ๊ฐ, ๊ต์ก, ์ฑ์ฉ๊น์ง Total Solution์ ์ ๊ณตํ๋ ๊ฐ๋ฐ์ ์ฑ์ฅ์ ์ํ ๋ฒ ์ด์ค์บ ํ
programmers.co.kr
๋ฌธ์ ์ค๋ช
๊ฐ๋ฏธ ๊ตฐ๋จ์ด ์ฌ๋ฅ์ ๋๊ฐ๋ ค๊ณ ํฉ๋๋ค. ๊ฐ๋ฏธ๊ตฐ๋จ์ ์ฌ๋ฅ๊ฐ์ ์ฒด๋ ฅ์ ๋ฑ ๋ง๋ ๋ณ๋ ฅ์ ๋ฐ๋ฆฌ๊ณ ๋๊ฐ๋ ค๊ณ ํฉ๋๋ค. ์ฅ๊ตฐ๊ฐ๋ฏธ๋ 5์ ๊ณต๊ฒฉ๋ ฅ์, ๋ณ์ ๊ฐ๋ฏธ๋ 3์ ๊ณต๊ฒฉ๋ ฅ์ ์ผ๊ฐ๋ฏธ๋ 1์ ๊ณต๊ฒฉ๋ ฅ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ฒด๋ ฅ 23์ ์ฌ์น๋ฅผ ์ฌ๋ฅํ๋ ค๊ณ ํ ๋, ์ผ๊ฐ๋ฏธ 23๋ง๋ฆฌ๋ฅผ ๋ฐ๋ฆฌ๊ณ ๊ฐ๋ ๋์ง๋ง, ์ฅ๊ตฐ๊ฐ๋ฏธ ๋ค ๋ง๋ฆฌ์ ๋ณ์ ๊ฐ๋ฏธ ํ ๋ง๋ฆฌ๋ฅผ ๋ฐ๋ฆฌ๊ณ ๊ฐ๋ค๋ฉด ๋ ์ ์ ๋ณ๋ ฅ์ผ๋ก ์ฌ๋ฅํ ์ ์์ต๋๋ค. ์ฌ๋ฅ๊ฐ์ ์ฒด๋ ฅ hp๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ์ฌ๋ฅ๊ฐ์ ์ฒด๋ ฅ์ ๋ฑ ๋ง๊ฒ ์ต์ํ์ ๋ณ๋ ฅ์ ๊ตฌ์ฑํ๋ ค๋ฉด ๋ช ๋ง๋ฆฌ์ ๊ฐ๋ฏธ๊ฐ ํ์ํ์ง๋ฅผ returnํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ์ฌํญ
- hp๋ ์์ฐ์์ ๋๋ค.
- 0 ≤ hp ≤ 1000
์ ์ถ๋ ฅ ์hpresult
| 23 | 5 |
| 24 | 6 |
| 999 | 201 |
์ ์ถ๋ ฅ ์ ์ค๋ช
์ ์ถ๋ ฅ ์ #1
- hp๊ฐ 23์ด๋ฏ๋ก, ์ฅ๊ตฐ๊ฐ๋ฏธ ๋ค๋ง๋ฆฌ์ ๋ณ์ ๊ฐ๋ฏธ ํ๋ง๋ฆฌ๋ก ์ฌ๋ฅํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ 5๋ฅผ returnํฉ๋๋ค.
์ ์ถ๋ ฅ ์ #2
- hp๊ฐ 24์ด๋ฏ๋ก, ์ฅ๊ตฐ๊ฐ๋ฏธ ๋ค๋ง๋ฆฌ ๋ณ์ ๊ฐ๋ฏธ ํ๋ง๋ฆฌ ์ผ๊ฐ๋ฏธ ํ๋ง๋ฆฌ๋ก ์ฌ๋ฅํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ 6์ returnํฉ๋๋ค.
์ ์ถ๋ ฅ ์ #3
- hp๊ฐ 999์ด๋ฏ๋ก, ์ฅ๊ตฐ๊ฐ๋ฏธ 199 ๋ง๋ฆฌ ๋ณ์ ๊ฐ๋ฏธ ํ๋ง๋ฆฌ ์ผ๊ฐ๋ฏธ ํ๋ง๋ฆฌ๋ก ์ฌ๋ฅํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ 201์ returnํฉ๋๋ค.
Approach 2โญ
๊ฐ์ฅ ํฐ ๊ฐ์ ์ฒ๋ฆฌํ ์ ์๋ ๊ฐ๋ฏธ๋ถํฐ ์์ฐจ์ ์ผ๋ก ์ฌ์ฉํ์ฌ ์ฒด๋ ฅ์ ์ต์ํ์ ๊ฐ๋ฏธ๋ก ์ค์ด๋ ๊ฒ์ด 3๊ฐ์ง ์๋ฅผ ์ต์ํ์ผ๋ก ์ฌ์ฉํ ์ ์๋ ๋ฐฉ๋ฒ์ด๋ค.
1. ๋ฌธ์ ์ดํด
- hp : ์ ์ ์ฒด๋ ฅ์ ๋ํ๋ด๋ ๊ฐ(๋ด๊ฐ ๋ง์ถฐ์ผ ํ๋ ์)
- ๊ฐ๋ฏธ : -5, -3, -1
- ๋ชฉํ : ์ฃผ์ด์ง ์ฒด๋ ฅ์ ์ต์ํ์ ๊ฐ๋ฏธ ์๋ก ์ค์ด๋ ๋ฐฉ๋ฒ์ ์ฐพ์์ผ ํจ.
2. ํต์ฌ ๋ ผ๋ฆฌ
ํฐ ๊ฐ๋ถํฐ ์ฒ๋ฆฌํ๋ค.
2.1 ๊ฐ์ฅ ํฐ ๊ฐ์ ์ค์ผ ์ ์๋ -5๋ถํฐ ์ต๋ํ ๋ง์ด ์ฌ์ฉ.
2.2 ๋จ์ ์ฒด๋ ฅ์์ ๋ ๋ฒ์งธ๋ก ํฐ ๊ฐ์ ์ค์ผ ์ ์๋ -3 ์ ๊ทธ ๋ค์์ผ๋ก ์ฌ์ฉ
2.3 ๋ง์ง๋ง์ผ๋ก -1 ์ฌ์ฉ
3. ๋จ๊ณ๋ณ ํ์ด
3.1 -5 ์ฌ์ฉ
hp๋ฅผ 5๋ก ๋๋์ด ๋ชซ (hp / 5) ๋งํผ ์ฅ๊ตฐ ๊ฐ๋ฏธ๋ฅผ ์ฌ์ฉ
๋จ์ ์ฒด๋ ฅ: hp % 5
3.2 -3 ์ฌ์ฉ
๋จ์ ์ฒด๋ ฅ์ 3์ผ๋ก ๋๋์ด ๋ชซ (๋จ์ ์ฒด๋ ฅ / 3)๋งํผ -3์ ์ฌ์ฉ
๋จ์ ์ฒด๋ ฅ : ๋จ์ ์ฒด๋ ฅ %3
3.3 -1 ์ฌ์ฉ
๋จ์ ์ฒด๋ ฅ์ ๋ชจ๋ ์ผ๊ฐ๋ฏธ๋ก ์ฒ๋ฆฌ
์ผ๊ฐ๋ฏธ ์ : ๋จ์ ์ฒด๋ ฅ
์์ฌ ์ฝ๋ (Pseudocode)
Input : hp
generalAnt = 5;
soldierAnt = 3;
workerAnt = 1:
count = 0;
# Step 1: Use general ants
count += hp / generalAnt
hp %= generalAnt
# Step 2: Use soldier ants
count += hp / soldierAnt
hp %= soldierAnt
# Step 3: Use worker ants
count += hp / workerAnt
Output : count
์์ฌ ์ฝ๋(Pseudocode)๋?
์์ฌ ์ฝ๋(Pseudocode)๋ ํน์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋ฌธ๋ฒ์ ์์กดํ์ง ์๊ณ , ์๊ณ ๋ฆฌ์ฆ์ ๋ ผ๋ฆฌ๋ ์คํ ๊ณผ์ ์ ์ฌ๋์ด ์ดํดํ๊ธฐ ์ฝ๊ฒ ์์ ํ ์ฝ๋ ํ์์ ๋๋ค.
• ๋ชฉ์ :
• ์๊ณ ๋ฆฌ์ฆ ์ค๊ณ๋ฅผ ๋จ์ํํ๊ณ ๊ฐ๋ ์ ์ผ๋ก ํํ.
• ํ๋ก๊ทธ๋๋จธ๊ฐ ์ฝ๋๋ก ๊ตฌํํ๊ธฐ ์ ์ ์ค๊ณ ๋จ๊ณ์์ ์ฌ์ฉํ ์ ์๋๋ก ๋์.
• ํน์ง:
• ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋ฌธ๋ฒ์ ์ฝ๋งค์ด์ง ์์.
• ์์ด์ ํ๋ก๊ทธ๋๋ฐ ๊ฐ๋ ์ ํผํฉํ์ฌ ์์ฑ.
• ์ฌ๋์ด ์ดํดํ๊ธฐ ์ฌ์ด ๋ฐฉ์์ผ๋ก ์ฐ์ฌ์ ธ ์์.
• ์คํ ๋ถ๊ฐ๋ฅํ ์ฝ๋ ํํ.
Solution ๐ก
package reviewCodingTest;
public class Ant {
public int solution(int hp) {
int generalAnt = 5;
int soldierAnt = 3;
int workerAnt = 1;
int count = 0;
count += hp / generalAnt;
hp %= generalAnt;
count += hp / soldierAnt;
hp %= soldierAnt;
count += hp / workerAnt;
return count;
}
public static void main(String[] args) {
Ant ant = new Ant();
System.out.println(ant.solution(30));
}
}
Reference ๐
์ด ๋ฌธ์ ์ ํต์ฌ
- ๊ฐ์ฅ ํฐ ๊ฐ์ ์ฒ๋ฆฌํ ์ ์๋ ๊ฐ๋ฏธ๋ถํฐ ์์ฐจ์ ์ผ๋ก ์ฌ์ฉํ๋ "ํ๋ค์ด ์ ๊ทผ๋ฒ"์ด ์ต์๊ฐ์ ๋ณด์ฅ.
- ์ฒด๋ ฅ์ ๋๋ ๋ "๋ชซ๊ณผ ๋๋จธ์ง"๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ฌธ์ ๋ฅผ ๋ ผ๋ฆฌ์ ์ผ๋ก ํธ๋ ํต์ฌ