https://school.programmers.co.kr/learn/courses/30/lessons/181894
๋ฌธ์
๋ฌธ์ ์ค๋ช
์ ์ ๋ฐฐ์ด arr๊ฐ ์ฃผ์ด์ง๋๋ค. ๋ฐฐ์ด ์์ 2๊ฐ ๋ชจ๋ ํฌํจ๋ ๊ฐ์ฅ ์์ ์ฐ์๋ ๋ถ๋ถ ๋ฐฐ์ด์ return ํ๋ solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์.
๋จ, arr์ 2๊ฐ ์๋ ๊ฒฝ์ฐ [-1]์ return ํฉ๋๋ค.
์ ํ ์ฌํญ
- 1 ≤ arr์ ๊ธธ์ด ≤ 100,000
- 1 ≤ arr์ ์์ ≤ 10
์ ์ถ๋ ฅ ์
arr | result |
[1, 2, 1, 4, 5, 2, 9] | [2, 1, 4, 5, 2] |
[1, 2, 1] | [2] |
[1, 1, 1] | [-1] |
[1, 2, 1, 2, 1, 10, 2, 1] | [2, 1, 2, 1, 10, 2] |
์์ค ์ฝ๋
# 1 (์๊ฐ์ด๊ณผ๋ก ์คํจ)
def solution(arr):
cnt = arr.count(2)
start = end = 0
answer = []
if cnt == 0:
answer = [-1]
elif cnt == 1:
answer = [2]
else:
for idx in range(len(arr)):
if arr[idx]==2 and cnt==arr.count(2):
start = idx
cnt -= 1
elif arr[idx]==2 and cnt==1:
end = idx
elif arr[idx]==2:
cnt -= 1
answer = arr[start:end+1]
return answer
ํ์ด # 1
- arr์์ 2์ ๊ฐฏ์๋ฅผ cnt๋ก ์ค์ ํ๊ณ 2๊ฐ ์์ผ๋ฉด answer = [-1], 1๊ฐ๋ฉด answer = [2]
- arr์์ 2๊ฐ 2๊ฐ ์ด์์ธ ๊ฒฝ์ฐ
- 2์ ๊ฐฏ์ cnt์์ 2๊ฐ ๋ฑ์ฅํ ๋๋ง๋ค 1์ฉ ๋นผ์ ๋ช ๋ฒ์งธ ๋ฑ์ฅ์ธ์ง ํ์ธ
- start = ์ฒ์ 2๊ฐ ๋ฑ์ฅํ ์ธ๋ฑ์ค / end = ๋ง์ง๋ง 2๊ฐ ๋ฑ์ฅํ ์ธ๋ฑ์ค
- answer = arr์ start๋ถํฐ end๊น์ง์ ์ธ๋ฑ์ค
# 2
def solution(arr):
answer = []
idx_list = []
for idx in range(len(arr)):
if arr[idx] == 2:
idx_list.append(idx)
cnt = len(idx_list)
if cnt == 0:
answer = [-1]
else:
answer = arr[idx_list[0]:idx_list[-1]+1]
return answer
ํ์ด #2
- arr๋ฅผ ๋๋ฉด์ 2๊ฐ ๋ฑ์ฅํ ๋๋ง๋ค idx_list์ idx ์ถ๊ฐ
- idx_list์ ๊ฐฏ์๋ฅผ cnt๋ก ๋๊ณ 0์ด๋ฉด answer = [-1]
- idx_list์ ๊ฐฏ์(=cnt)๊ฐ 0์ ์๋ ๊ฒฝ์ฐ
- idx_list์๋ 2์ ์ธ๋ฑ์ค๊ฐ ์์๋๋ก ์ ๋ ฌ
- idx_list[0] = ์ฒ์ 2๊ฐ ๋ฑ์ฅํ ์ธ๋ฑ์ค / idx_list[-1] = ๋ง์ง๋ง 2๊ฐ ๋ฑ์ฅํ ์ธ๋ฑ์ค
- answer = arr์ idx_list[0]๋ถํฐ idx_list[-1]๊น์ง์ ์ธ๋ฑ์ค
# 3
def solution(arr):
answer = []
if 2 not in arr:
answer = [-1]
else:
answer = arr[arr.index(2) : len(arr) - arr[::-1].index(2)]
return answer
ํ์ด #3
- arr์ 2๊ฐ ํฌํจ๋์ด ์์ง ์์ผ๋ฉด answer = [-1]
- arr์ 2๊ฐ ํฌํจ๋์ด ์๋๊ฒฝ์ฐ
- arr.index(2) = ์ฒ์์ผ๋ก 2๊ฐ ๋ฑ์ฅํ ์ธ๋ฑ์ค
- arr[::-1].index(2) = arr๋ฅผ ๊ฑฐ๊พธ๋ก ๋ดค์ ๋ ์ฒ์ 2๊ฐ ๋ฑ์ฅํ ์ธ๋ฑ์ค = ๋ง์ง๋ง์ผ๋ก 2๊ฐ ๋ฑ์ฅํ ์ธ๋ฑ์ค
- arr๋ฅผ ๊ฑฐ๊พธ๋ก ๋ดค์ ๋์ ์ธ๋ฑ์ค์ด๋ฏ๋ก ์ ์ฒด ๊ธธ์ด์์ ๋นผ๊ธฐ...!!
์ฒซ ๋ฒ์งธ ํ์ด๋ ์ด๊ฒ ์ ๊ฒ ์กฐ๊ฑด์ ๋ง๋ถ์ด๋ค ๋ณด๋ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆด ์ ๋ฐ์ ์์๋ค. ๊ทธ๋์ ๋ ๋ฒ์งธ ํ์ด๋ก๋ 2๊ฐ ์๋ ๊ฒฝ์ฐ์ ์ธ๋ฑ์ค๋ง ์ถ์ถํด์ ์ฒ์๊ณผ ๋ง์ง๋ง ์ธ๋ฑ์ค์ arr๋ฅผ ์ถ๋ ฅํ๋ค. ์ด๊ฒ๋ ๊ด์ฐฎ๋ค๊ณ ์๊ฐํ๋๋ฐ ๋ค๋ฅธ ์ฌ๋์ด ํผ ์ธ ๋ฒ์งธ ํ์ด๋ฅผ ์ฐธ๊ณ ํด๋ณด๋๊น ์ ๋ฐํ๊ณ ๊น๋ํ๋ค...๋ค๋ฅธ ์ฌ๋์ ํ์ด๋ฅผ ์ฐธ๊ณ ํ๋ฉด์ ๋ฌธ์ ๋ฅผ ๋ง์ด ํ์ด๋ด์ผ๊ฒ ๋ค. ๋๋ ์ผ์ค์์ด๊ฐ ๋๊ณ ์ถ๋ค...!!
'์ฝ๋ฉ ๋ฌธ์ ํ์ด ๐ป > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค / ํ์ด์ฌ] Lv.0 ๊ฒน์น๋ ์ ๋ถ์ ๊ธธ์ด (1) | 2023.12.05 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค / ํ์ด์ฌ] Lv.0 ํน์ดํ ์ ๋ ฌ (1) | 2023.12.05 |
[ํ๋ก๊ทธ๋๋จธ์ค / ํ์ด์ฌ] Lv.0 ์ ์๋ฅผ ๋์ ํ์ผ๋ก ๋ฐฐ์นํ๊ธฐ (0) | 2023.12.05 |
[ํ๋ก๊ทธ๋๋จธ์ค / ํ์ด์ฌ] Lv.0 ์ฃผ์ฌ์ ๊ฒ์ 3 (1) | 2023.11.20 |
[ํ๋ก๊ทธ๋๋จธ์ค / ํ์ด์ฌ] Lv.0 ์กฐ๊ฑด ๋ฌธ์์ด (1) | 2023.11.18 |