๐ ํ์ด์ฌ ์ผ๋ก ํ์ด
๐ ๋ฌธ์ ๋งํฌ :
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
๐ ๋ฌธ์ ์ค๋ช :
์ด๋ ํ๊ต์ ํ์ธํธ๊ฐ ์น ํด์ง ๊ธธ์ด๊ฐ n๋ฏธํฐ์ธ ๋ฒฝ์ด ์์ต๋๋ค. ๋ฒฝ์ ๋์๋ฆฌ · ํํ ํ๋ณด๋ ํ์ฌ ์ฑ์ฉ ๊ณต๊ณ ํฌ์คํฐ ๋ฑ์ ๊ฒ์ํ๊ธฐ ์ํด ํ ์ดํ๋ก ๋ถ์๋ค๊ฐ ์ฒ ๊ฑฐํ ๋ ๋ผ๋ ์ผ์ด ๋ง๊ณ ๊ทธ ๊ณผ์ ์์ ํ์ธํธ๊ฐ ๋ฒ๊ฒจ์ง๊ณค ํฉ๋๋ค. ํ์ธํธ๊ฐ ๋ฒ๊ฒจ์ง ๋ฒฝ์ด ๋ณด๊ธฐ ํํด์ ธ ํ๊ต๋ ๋ฒฝ์ ํ์ธํธ๋ฅผ ๋ง์น ํ๊ธฐ๋ก ํ์ต๋๋ค.
๋์ ๋ฒฝ ์ ์ฒด์ ํ์ธํธ๋ฅผ ์๋ก ์น ํ๋ ๋์ , ๊ตฌ์ญ์ ๋๋์ด ์ผ๋ถ๋ง ํ์ธํธ๋ฅผ ์๋ก ์น ํจ์ผ๋ก์จ ์์ฐ์ ์๋ผ๋ ค ํฉ๋๋ค. ์ด๋ฅผ ์ํด ๋ฒฝ์ 1๋ฏธํฐ ๊ธธ์ด์ ๊ตฌ์ญ n๊ฐ๋ก ๋๋๊ณ , ๊ฐ ๊ตฌ์ญ์ ์ผ์ชฝ๋ถํฐ ์์๋๋ก 1๋ฒ๋ถํฐ n๋ฒ๊น์ง ๋ฒํธ๋ฅผ ๋ถ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ํ์ธํธ๋ฅผ ๋ค์ ์น ํด์ผ ํ ๊ตฌ์ญ๋ค์ ์ ํ์ต๋๋ค.
๋ฒฝ์ ํ์ธํธ๋ฅผ ์น ํ๋ ๋กค๋ฌ์ ๊ธธ์ด๋ m๋ฏธํฐ์ด๊ณ , ๋กค๋ฌ๋ก ๋ฒฝ์ ํ์ธํธ๋ฅผ ํ ๋ฒ ์น ํ๋ ๊ท์น์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ๋กค๋ฌ๊ฐ ๋ฒฝ์์ ๋ฒ์ด๋๋ฉด ์ ๋ฉ๋๋ค.
- ๊ตฌ์ญ์ ์ผ๋ถ๋ถ๋ง ํฌํจ๋๋๋ก ์น ํ๋ฉด ์ ๋ฉ๋๋ค.
์ฆ, ๋กค๋ฌ์ ์ข์ฐ์ธก ๋์ ๊ตฌ์ญ์ ๊ฒฝ๊ณ์ ํน์ ๋ฒฝ์ ์ข์ฐ์ธก ๋๋ถ๋ถ์ ๋ง์ถ ํ ๋กค๋ฌ๋ฅผ ์์๋๋ก ์์ง์ด๋ฉด์ ๋ฒฝ์ ์น ํฉ๋๋ค. ํ์ฌ ํ์ธํธ๋ฅผ ์น ํ๋ ๊ตฌ์ญ๋ค์ ์์ ํ ์น ํ ํ ๋ฒฝ์์ ๋กค๋ฌ๋ฅผ ๋ผ๋ฉฐ, ์ด๋ฅผ ๋ฒฝ์ ํ ๋ฒ ์น ํ๋ค๊ณ ์ ์ํฉ๋๋ค.
ํ ๊ตฌ์ญ์ ํ์ธํธ๋ฅผ ์ฌ๋ฌ ๋ฒ ์น ํด๋ ๋๊ณ ๋ค์ ์น ํด์ผ ํ ๊ตฌ์ญ์ด ์๋ ๊ณณ์ ํ์ธํธ๋ฅผ ์น ํด๋ ๋์ง๋ง ๋ค์ ์น ํ๊ธฐ๋ก ์ ํ ๊ตฌ์ญ์ ์ ์ด๋ ํ ๋ฒ ํ์ธํธ์น ์ ํด์ผ ํฉ๋๋ค. ์์ฐ์ ์๋ผ๊ธฐ ์ํด ๋ค์ ์น ํ ๊ตฌ์ญ์ ์ ํ๋ฏ ๋ง์ฐฌ๊ฐ์ง๋ก ๋กค๋ฌ๋ก ํ์ธํธ์น ์ ํ๋ ํ์๋ฅผ ์ต์ํํ๋ ค๊ณ ํฉ๋๋ค.
์ ์ n, m๊ณผ ๋ค์ ํ์ธํธ๋ฅผ ์น ํ๊ธฐ๋ก ์ ํ ๊ตฌ์ญ๋ค์ ๋ฒํธ๊ฐ ๋ด๊ธด ์ ์ ๋ฐฐ์ด section์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋ ๋กค๋ฌ๋ก ํ์ธํธ์น ํด์ผ ํ๋ ์ต์ ํ์๋ฅผ return ํ๋ solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์.
๐ ์ ํ ์ฌํญ
- 1 ≤ m ≤ n ≤ 100,000
- 1 ≤ section์ ๊ธธ์ด ≤ n
- 1 ≤ section์ ์์ ≤ n
- section์ ์์๋ ํ์ธํธ๋ฅผ ๋ค์ ์น ํด์ผ ํ๋ ๊ตฌ์ญ์ ๋ฒํธ์ ๋๋ค.
- section์์ ๊ฐ์ ์์๊ฐ ๋ ๋ฒ ์ด์ ๋ํ๋์ง ์์ต๋๋ค.
- section์ ์์๋ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ๋์ด ์์ต๋๋ค.
๐ ์ ์ถ๋ ฅ ์
์ถ์ธก)
m ๋กค๋ฌ ๊ธธ์ด๊ฐ ์ค์ํ ๋ฌธ์ ์ธ๊ฑฐ ๊ฐ๋ค.
์ผ๋จ m์ด 1์ผ๋๋ section ๊ธธ์ด ๋งํผ์ ๋ฐ๋ก ๋ฐํ
m์ด 1์ด ์๋ ๊ฒฝ์ฐ์๋
m ๊ธธ์ด ์์ ์์ญ์ผ๋ก ๋ค์ด์ค๋ ๊ฒฝ์ฐ๋ ์นด์ดํธ ํ์ง ์๊ณ ์์ญ ๋ฐ์ผ๋ก ๋์ด๊ฐ๋ฉด ์นด์ดํธ๋ฅผ ํ๋ ๋ฐฉ์์ผ๋ก ํ๋ฉด ๋ ๋ฏ!
section ๋ฐฐ์ด์ for๋ฌธ ๋๋ ค ์ผ๋จ ์ฒ์ ์์์ ์นด์ดํธ๋ฅผ ์ฌ๋ฆฐ๋ค.
๊ทธ๋ฆฌ๊ณ ์ฒ์์๋ฅผ ์ ์ฅํด ๊ทธ ๋ค์์์์ ์ฒ์์๋ฅผ ๋บ์ ๋ m๋ณด๋ค ์์ผ๋ฉด ์นด์ดํธ๋ฅผ ์ฌ๋ฆฌ์ง ์๊ณ m๋ณด๋ค ํฐ ์๊ฐ ์ฒ์์๋ฅผ ์๋ก ๊ฐฑ์ ํ๊ณ ์นด์ดํธ๋ฅผ ์ฌ๋ฆฐ๋ค.
์ด๊ฑธ ์น์ ๋๊น์ง ๋ฐ๋ณตํ๋ฉด ๋ ๋ฏํ๋ค.
์์ค์ฝ๋)
* 1์ฐจ) ์ฑ๊ณต!!
def solution(n, m, section):
answer = 0
if m == 1 :
return len(section)
first_num = 0
for i in range(0, len(section)) :
if i == 0 :
first_num = section[i]
answer += 1
if m <= section[i] - first_num :
answer += 1
first_num = section[i]
return answer
๋ฆฌ๋ทฐ)
์ถ์ธกํ๋๋ก ํ๋ ค์ ๋งค์ฐ ๊ธฐ๋ถ ์ข์!
'Coding Test > Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Programmers] n^2 ๋ฐฐ์ด ์๋ฅด๊ธฐ (0) | 2023.04.03 |
---|---|
Programmers] ๊ณต์ ์ฐ์ฑ (0) | 2023.04.03 |
Programmers] ๊ทค ๊ณ ๋ฅด๊ธฐ (0) | 2023.03.28 |
์์ด (0) | 2023.03.18 |
Programmers] ๋ฉ๋ฆฌ ๋ฐ๊ธฐ (0) | 2023.03.18 |