1) ๋ฌธ์ ์ค๋ช
- ์ฒ ํธ๋ ์์ด์ ๊ฐ์ง๊ณ ๋๊ธฐ ์ข์ํฉ๋๋ค.
- ์ด๋ ๋ ์ฒ ํธ๋ ์ด๋ค ์์ฐ์๋ก ์ด๋ฃจ์ด์ง ์ํ ์์ด์ ์ฐ์ํ๋ ๋ถ๋ถ ์์ด์ ํฉ์ผ๋ก ๋ง๋ค ์ ์๋ ์๊ฐ ๋ชจ๋ ๋ช ๊ฐ์ง์ธ์ง ์์๋ณด๊ณ ์ถ์ด์ก์ต๋๋ค.
- ์ํ ์์ด์ด๋ ์ผ๋ฐ์ ์ธ ์์ด์์ ์ฒ์๊ณผ ๋์ด ์ฐ๊ฒฐ๋ ํํ์ ์์ด์ ๋งํฉ๋๋ค.
- ์๋ฅผ ๋ค์ด ์์ด [7, 9, 1, 1, 4] ๋ก ์ํ ์์ด์ ๋ง๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ์ํ ์์ด์ ์ฒ์๊ณผ ๋์ด ์ฐ๊ฒฐ๋์ด ๋๊ธฐ๋ ๋ถ๋ถ์ด ์๊ธฐ ๋๋ฌธ์ ์ฐ์ํ๋ ๋ถ๋ถ ์์ด๋ ์ผ๋ฐ์ ์ธ ์์ด๋ณด๋ค ๋ง์์ง๋๋ค.
- ์ํ ์์ด์ ๋ชจ๋ ์์ elements๊ฐ ์์๋๋ก ์ฃผ์ด์ง ๋, ์ํ ์์ด์ ์ฐ์ ๋ถ๋ถ ์์ด ํฉ์ผ๋ก ๋ง๋ค ์ ์๋ ์์ ๊ฐ์๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
2) ์ ํ ์ฌํญ
- 3 ≤ elements์ ๊ธธ์ด ≤ 1,000
- 1 ≤ elements์ ์์ ≤ 1,000
3) ์ ์ถ๋ ฅ ์์
elements result
[7,9,1,1,4] 18
4) ์ ์ถ๋ ฅ ์์ ์ค๋ช
์
์ถ๋ ฅ ์ #1
๊ธธ์ด๊ฐ 1์ธ ์ฐ์ ๋ถ๋ถ ์์ด๋ก๋ถํฐ [1, 4, 7, 9] ๋ค ๊ฐ์ง์ ํฉ์ด ๋์ฌ ์ ์์ต๋๋ค.
๊ธธ์ด๊ฐ 2์ธ ์ฐ์ ๋ถ๋ถ ์์ด๋ก๋ถํฐ [2, 5, 10, 11, 16] ๋ค์ฏ ๊ฐ์ง์ ํฉ์ด ๋์ฌ ์ ์์ต๋๋ค.
๊ธธ์ด๊ฐ 3์ธ ์ฐ์ ๋ถ๋ถ ์์ด๋ก๋ถํฐ [6, 11, 12, 17, 20] ๋ค์ฏ ๊ฐ์ง์ ํฉ์ด ๋์ฌ ์ ์์ต๋๋ค.
๊ธธ์ด๊ฐ 4์ธ ์ฐ์ ๋ถ๋ถ ์์ด๋ก๋ถํฐ [13, 15, 18, 21] ๋ค ๊ฐ์ง์ ํฉ์ด ๋์ฌ ์ ์์ต๋๋ค.
๊ธธ์ด๊ฐ 5์ธ ์ฐ์ ๋ถ๋ถ ์์ด๋ก๋ถํฐ [22] ํ ๊ฐ์ง์ ํฉ์ด ๋์ฌ ์ ์์ต๋๋ค.
์ด๋ค ์ค ์ค๋ณต๋๋ ๊ฐ์ ์ ์ธํ๋ฉด ๋ค์๊ณผ ๊ฐ์ 18๊ฐ์ง์ ์๋ค์ ์ป์ต๋๋ค.
[1, 2, 4, 5, 6, 7, 9, 10, 11, 12, 13, 15, 16, 17, 18, 20, 21, 22]
5) ํ์ด
def solution(elements):
# set ์๋ฃํ, ๋ฐฐ์ด length ์ด๊ธฐํ
S = set()
length = len(elements)
# ๊ธธ์ด 1๋ถํฐ n๊น์ง n๋ฒ ๋ฐ๋ณต
for cnt in range(1, length + 1):
# elements ๋ฐฐ์ด ๊ฐ์๋งํผ ๋ฐ๋ณต
for i, num in enumerate(elements):
arrSum = 0
# ์์ด ๊ธธ์ด๊ฐ ๋ฐฐ์ด ๊ธธ์ด๋ ๋์ผํ ๊ฒฝ์ฐ
if cnt == length:
S.add(sum(elements))
break
# ๋ฐฐ์ด index๋ฅผ ์ด๊ณผํ๊ฒ ๋๋ ๊ฒฝ์ฐ
if i + cnt > length:
j = (i + cnt) - length
arrSum = sum(elements[i:length]) + sum(elements[0:j])
# ๋ฐฐ์ด index๋ฅผ ์ด๊ณผํ์ง ์๋ ๊ฒฝ์ฐ
else:
arrSum = sum(elements[i:i + cnt])
# set ์๋ฃํ์ ๋ฐ์ดํฐ ์ถ๊ฐ (์์ด ํฉ)
S.add(arrSum)
# set ์๋ฃํ length ๋ฆฌํด
return len(S)
[Reference]
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
๋ฐ์ํ
'๐ฏ Coding Test > ์๊ณ ๋ฆฌ์ฆ ํ ์คํธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค (Lv 2) - ์คํ์ฑํ ๋ฐฉ (0) | 2023.09.05 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค (Lv 1) - ๋ฌ๋ฆฌ๊ธฐ ๊ฒฝ์ฃผ (1) | 2023.08.22 |
ํ๋ก๊ทธ๋๋จธ์ค (Lv 2) - ํ๋ ฌ์ ๊ณฑ์ (1) | 2023.08.21 |
ํ๋ก๊ทธ๋๋จธ์ค (Lv 2) - ๊ฒ์ ๋งต ์ต๋จ๊ฑฐ๋ฆฌ (1) | 2023.08.21 |
ํ๋ก๊ทธ๋๋จธ์ค (Lv 2) - ๊ตฌ๋ช ๋ณดํธ (1) | 2023.08.17 |