
Problem ๐ป
https://school.programmers.co.kr/learn/courses/30/lessons/120814
๋ฌธ์ ์ค๋ช
๋จธ์ฑ์ด๋ค ํผ์๊ฐ๊ฒ๋ ํผ์๋ฅผ ์ผ๊ณฑ ์กฐ๊ฐ์ผ๋ก ์๋ผ ์ค๋๋ค. ํผ์๋ฅผ ๋๋ ๋จน์ ์ฌ๋์ ์ n์ด ์ฃผ์ด์ง ๋, ๋ชจ๋ ์ฌ๋์ด ํผ์๋ฅผ ํ ์กฐ๊ฐ ์ด์ ๋จน๊ธฐ ์ํด ํ์ํ ํผ์์ ์๋ฅผ return ํ๋ solution ํจ์๋ฅผ ์์ฑํด๋ณด์ธ์.
์ ํ์ฌํญ
- 1 ≤ n ≤ 100
์ ์ถ๋ ฅ ์
n result| 7 | 1 |
| 1 | 1 |
| 15 | 3 |
์ ์ถ๋ ฅ ์ ์ค๋ช
์ ์ถ๋ ฅ ์ #1
- 7๋ช ์ด ์ต์ ํ ์กฐ๊ฐ์ฉ ๋จน๊ธฐ ์ํด์ ์ต์ 1ํ์ด ํ์ํฉ๋๋ค.
์ ์ถ๋ ฅ ์ #2
- 1๋ช ์ ์ต์ ํ ์กฐ๊ฐ์ ๋จน๊ธฐ ์ํด 1ํ์ด ํ์ํฉ๋๋ค.
์ ์ถ๋ ฅ ์ #3
- 15๋ช ์ด ์ต์ ํ ์กฐ๊ฐ์ฉ ๋จน๊ธฐ ์ํด์ ์ต์ 3ํ์ด ํ์ํฉ๋๋ค.
Approach 1 โ - ๋์ ์ด๊ธฐ ์ ๊ทผ๋ฒ
1~7๊ฐ ์ดํ์ด๋ฉด 1 ๋ฆฌํด
8~14 = 2, 15~21 = 3, 22~28= 4
if else ๋ฌธ์ ์ฌ์ฉํด์ ๋ฒ์๋ฅผ ๊ฐ๊ฐ ์๋ผ์ ํ ์๋ ์๊ณ
% ๊ฐ๋
์ ์ด์ฉํด์ ํ์๋ ์๋ค.
Approach 2 โญ - ๋ด ์ ๊ทผ๋ฒ์ ๋ํ ๋ฌธ์ ์
1. ๋นํจ์จ์ ์ธ ์กฐ๊ฑด ๋ถ๊ธฐ:
• if-else ๋ฌธ์ ์ฌ์ฉํด ๋ฒ์๋ฅผ ๋๋๋ ๊ฒ์ ๋นํจ์จ์ ์ด๋ค.
์๋ฅผ ๋ค์ด, n <= 7 ์ด๋ฉด 1, 8 <= n <= 14 ์ด๋ฉด 2์ ๊ฐ์ด ์ผ์ผ์ด ์กฐ๊ฑด์ ํ์ธํ๋ ๋์ ,
๊ฐ๋จํ ๋๋จธ์ง ์ฐ์ฐ๊ณผ ๋ชซ์ ์ด์ฉํ๋ฉด ์ฝ๋๊ฐ ํจ์ฌ ๊ฐ๊ฒฐํด์ง๋ค.
2. % ์ฐ์ฐ ํ์ฉ ๋ฏธ๋น:
• n์ 7๋ก ๋๋์์ ๋ ๋๋จธ์ง๊ฐ ์๋ค๋ฉด ํ ์๋ฅผ ์ฌ๋ ค์ผ ํ๋ค๋ ๊ฐ๋ ์ ์ ํํ ํ์ฉํ์ง ์์๋ค.
์๊ตฌํ๋ ์ฌ๊ณ ๋ ฅ ๋ฐ ์๋ฐ ๊ฐ๋
1. ๋ชจ๋๋ก ์ฐ์ฐ (%):
• ๋๋จธ์ง ์ฐ์ฐ์ ์๋ฅผ ๋๋ ๋ค ๋๋จธ์ง๋ฅผ ๊ตฌํ๋ ์ฐ์ฐ์ด๋ค.
• n % 7์ด 0์ด๋ฉด ์ ํํ ๋๋์ด ๋จ์ด์ง ๊ฒ์ด๊ณ , ๊ทธ๋ ์ง ์์ผ๋ฉด ์ถ๊ฐ๋ก ํ ํ์ด ํ์ํ๋ค.
2. ๋ชซ ์ฐ์ฐ:
• ๋ชซ์ n / 7๋ก ๊ตฌํ ์ ์์ผ๋ฉฐ, ๋๋จธ์ง๊ฐ ์๋ ๊ฒฝ์ฐ ํ ์๋ฅผ ํ๋ ๋ ์ถ๊ฐํ๋ฉด ๋๋ค.
3. ์ฐ์ฐ ์ต์ ํ:
• ๋ถํ์ํ if-else ์กฐ๊ฑด ๋์ ์ํ์ ๊ณต์์ ํ์ฉํ์ฌ ์ฝ๋์ ๊ฐ๋ ์ฑ๊ณผ ํจ์จ์ฑ์ ๋์ธ๋ค.
Solution ๐ก
๋ฌธ์ ์ ์๊ตฌ์ฌํญ ๋ถ์ ๋ฐ ๋ ผ๋ฆฌ์ ์ ๊ทผ
์ด ๋ฌธ์ ๋ ํ ํ์ ํผ์๊ฐ 7์กฐ๊ฐ์ผ๋ก ๋๋๊ณ , n ๋ช ์ด ์์ ๋ ๋ชจ๋ ์ฌ๋์ด ์ต์ ํ ์กฐ๊ฐ์ฉ ๋จน๊ธฐ ์ํด ์ต์ํ ํ์ํ ํผ์์ ํ ์๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ์ด๋ค.
1. ํต์ฌ ๋ ผ๋ฆฌ:
• ํผ์ ํ ํ์ด 7์กฐ๊ฐ์ผ๋ก ๋๋์ด์ง๋ฏ๋ก, ์ฌ๋ ์ n์ 7๋ก ๋๋ ๋ชซ์ด ํ์ํ๋ค.
• ๋๋จธ์ง๊ฐ ์๋ ๊ฒฝ์ฐ, ์ถ๊ฐ๋ก ํ ํ์ด ํ์ํ๋ค.
2. ์ํ์ ๊ณต์:
ํ์ํ ํผ์ ํ ์๋ ๋ค์๊ณผ ๊ฐ๋ค:
= (n+6) / 7
์ ๊ณต์์ ์ฌ๋ฆผ ์ฐ์ฐ์ ์ฌ์ฉํ์ง ์๊ณ ๋ ๊ตฌํํ ์ ์๋ค. +6์ 7๋ก ๋๋์ด ๋จ์ด์ง์ง ์๋ ๊ฒฝ์ฐ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํ ๋ณด์ ์ด๋ค.
n์ ์ด๋ค ์๊ฐ ๋ ์ง ๋ชจ๋ฅด๋๋ฐ ์ ํญ์ 6์ ๋ํด์ค์ผ ํ๋๊ฑธ๊น?
n์ 7๋ก ๋๋ ๋ ๋๋จธ์ง๋ 0,1,2,3,....6 ์ค ํ๋๋ค.
1. ๋๋จธ์ง๊ฐ 0์ด๋ฉด, 7๋ก ๋ฑ ๋๋์ด ๋จ์ด์ ธ์ ์ถ๊ฐ๊ฐ ํ์ ์๋ค.
• (n + 6) / 7 = n / 7 ๊ทธ๋๋ก ๋ชซ์ด ๋์จ๋ค.
2. ๋๋จธ์ง๊ฐ 1, 2, …, 6์ด๋ฉด → ํ ํ์ด ๋ ํ์ํ๋ค
• 6์ ๋ํ๋ฉด ๋๋จธ์ง๋ฅผ 7 ์ด์์ผ๋ก ์ฌ๋ ค์ ํ ํ์ ์๋์ผ๋ก ๋ํด์ฃผ๋ ์ญํ ์ ํ๋ค.
ํผ์๋ฅผ ํ ํ ๋ ์ค๋นํ๋ ค๋ฉด ๋๋จธ์ง๊ฐ ์กฐ๊ธ์ด๋ผ๋ ์์ผ๋ฉด ๋๋ค.
์ด ๋๋จธ์ง๋ฅผ 7์กฐ๊ฐ์ผ๋ก ์ฑ์ฐ๋ ค๋ฉด ๋ฏธ๋ฆฌ 6์ ๋ํด์ค์ 7์ ๋๊ธฐ๊ฒ ๋ง๋๋ ๊ฒ์ด๋ค.
(๋๋จธ์ง์ ์ต์๊ฐ์ธ 1์ ๊ณ ๋ คํ์ฌ +6์ ํ์ฌ ํํ(7)์ ๋ง๋ค์ด ์ฃผ๋ ๊ฒ์ด๋ค.)
์์)
1)
8๋ช ์ ๋๋ ๋
8 / 7์ ํด๋ณด๋ฉด : ๋ชซ = 1, ๋๋จธ์ง = 1
๊ทธ๋ฐ๋ฐ ๋๋จธ์ง๊ฐ 1์ด ๋จ์์ผ๋๊น ํผ์ ํ ํ์ด ๋ ํ์ํ๋ค.
์ด๊ฑธ 6์ ๋ํด์ ์ฒ๋ฆฌํ๋ฉด
(8+6)7 = 147 =2
=> ์๋์ผ๋ก ํ ํ์ด ๋ํด์ก๋ค.
2)
1๋ช ์ ๋๋ ๋
1. 1 ÷ 7์ ํด๋ณด๋ฉด:
• ๋ชซ = 0, ๋๋จธ์ง = 1
2. ๋๋จธ์ง๊ฐ ์์ผ๋๊น ํผ์ ํ ํ์ด ํ์ํ๋ค.
6์ ๋ํ๋ฉด:
(1 + 6) ÷ 7 = 7 ÷ 7 = 1
→ ํ ํ์ด ์ ํํ๊ฒ ๋์จ๋ค!
3)
7๋ช ์ ๋๋ ๋
1. 7 ÷ 7์ ํด๋ณด๋ฉด:
• ๋ชซ = 1, ๋๋จธ์ง = 0
2. ๋๋จธ์ง๊ฐ ์์ผ๋๊น ํผ์ ํ ํ์ด๋ฉด ์ถฉ๋ถํ๋ค.
6์ ๋ํด๋ ๊ฒฐ๊ณผ๋ ๊ฐ๋ค:
(7 + 6) ÷ 7 = 13 ÷ 7 = 1
→ ๊ทธ๋๋ก ํ ํ์ด ํ์ํ๋ค.
class Solution {
public int solution(int n) {
// ์ต์ ํ์ํ ํผ์ ํ ์ ๊ณ์ฐ
return (n + 6) / 7;
}
}