240513 Today I Learn
๋ฌธ์ ์ํฉ
def solution(nums):
answer = []
for i in range(0, len(nums)):
for j in range(i+1, len(nums)):
for k in range(j+1, len(nums)):
answer.append(nums[i]+nums[j]+nums[k])
for n in answer:
cnt = []
for m in range(2,n):
if n % m == 0:
cnt.append(m)
if len(cnt)!=0:
answer.remove(n)
return len(answer)
๐ ๋ก์ง
- ์ฒซ๋ฒ์งธ for๋ฌธ์์ ์
๋ ฅ๋ฐ์ ์ซ์ ๋ฆฌ์คํธ nums์ ์๋ ์ซ์ ์ค 3๊ฐ๋ฅผ ๋ฝ์ ๋ํ๊ณ ์ด๋ฅผ answer ๋ฆฌ์คํธ์ appendํด์ค๋ค.
→ ์ด์ answer ๋ฆฌ์คํธ๋ nums์์ ๋๋ค์ผ๋ก ๋ฝ์ ์๋ก ๋ค๋ฅธ ์ธ๊ฐ์ ์ซ์๋ฅผ ๋ํ ๋ฆฌ์คํธ๊ฐ ๋๋ค. - ๋๋ฒ์งธ for๋ฌธ์ ์์๋ฅผ ํ์ ํ๊ธฐ ์ํ ๋ฐ๋ณต๋ฌธ์ด๋ค.
- ์์๋ 1๊ณผ ์๊ธฐ ์์ ๋ง์ ์ฝ์๋ก ํ๋ ์๋ก, ์์์ ์ซ์ x๊ฐ 2์ x-1 ์ฌ์ด์ ์ฝ์๋ฅผ ๊ฐ์ง๋ค๋ฉด x๋ ์ฝ์๊ฐ ๋ ์ ์๋ค.
- ๋ฐ๋ผ์ 2๋ถํฐ n-1๊น์ง์ ์ซ์๋ฅผ m์ผ๋ก ๋ฐ๋ ๋ฐ๋ณต๋ฌธ์ ์์ฑํ ๋ค ๊ทธ๊ฒ์ด answer์ ์๋ n์ ์ฝ์๋ผ๋ฉด ๋น ๋ฆฌ์คํธ cnt์ ์ ์ฅํ๋ค.
→ answer์ ๋ชจ๋ ์์ n์ cnt๋ฅผ ํ๋์ฉ ๊ฐ๋๋ค. - ๋ง์ฝ cnt์ ๊ธธ์ด๊ฐ 0์ด๋ผ๋ฉด ์์์ด๊ณ , 0์ด ์๋๋ผ๋ฉด ์์๊ฐ ์๋๋ค. ๋ฐ๋ผ์ answer์์ ์์๊ฐ ์๋ n์ remove๋ฅผ ์ด์ฉํด ์ญ์ ํ๋ค.
- ๋ง์ง๋ง์ผ๋ก answer์๋ ์์๊ฐ ์๋ ๋ชจ๋ n์ด ์ญ์ ๋์ด ์์์ธ ์๋ง ๋จ์ผ๋ฏ๋ก answer์ ๊ธธ์ด๋ฅผ len์ ์ด์ฉํด ๊ตฌํด์ค๋ค.
๐ ์๋ฌํ์
๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ ์ฝ๋๋ฅผ ํ์ํ๊ธฐ ์ํด ๋ฐ๋ณต๋ฌธ๋ณ๋ก ์ฝ๋๋ฅผ ๋ถ์ ํด์ ๋๋ ค๋ณด์๋ค.
๋๋ฒ์งธ ์ฝ๋ ๋ธ๋ญ๊น์ง๋ ์๋์ ๋ง๊ฒ nums์์ 3๊ฐ์ง์ ์๋ฅผ ๋ฝ์์ ๋ํ 10๊ฐ์ ์ซ์(5C3 = 10)๊ฐ ์ถ๋ ฅ๋๋ค.
๊ทธ๋ ๋ค๋ฉด ๋ฌธ์ ๊ฐ ์๊ธฐ๋ ์ฝ๋ ๋ธ๋ญ์ 3๋ฒ์งธ ์ฝ๋๋ธ๋ญ์ด๋ค.
for n in answer:
cnt = []
for m in range(2,n):
if n%m == 0:
cnt.append(m)
print(f"cnt: {cnt}")
if len(cnt) !=0:
answer.remove(n)
print(f"answer: {answer}")
3๋ฒ์งธ ์ฝ๋๋ธ๋ญ์์ ์ค๊ฐ์ค๊ฐ print๋ฌธ์ ๋ฃ์ด๊ฐ๋ฉฐ ์ด๋ ๋ถ๋ถ์์ ์๋ฌ๊ฐ ๋ฐ์ํ๋์ง ํ์ธํด๋ณด์.
๋๋ฒ์งธ ์ฝ๋๋ธ๋ญ์ output์ธ answer๋ ๋ค์๊ณผ ๊ฐ๋ค. [10, 9, 7, 14, 12, 11, 15, 13, 12, 17]
๊ทธ๋ฌ๋ ์ ์ด๋ฏธ์ง์ ๊ฐ์ด ์ค์ ๋ก ์ถ๋ ฅ๋ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ฉด
๋นจ๊ฐ์์ผ๋ก ํ์ํ ๋ค์์ ์ซ์๋ค์ด ๋น ์ง ์ฑ ์ฝ๋๊ฐ ๋์๊ฐ ๊ฒ์ ํ์ธํ ์ ์๋ค.
[10, 9, 7, 14, 12, 11, 15, 13, 12, 17]
for n in answer:
cnt = []
for m in range(2,n):
if n%m == 0:
cnt.append(m)
print(f"cnt: {cnt}")
for๋ฌธ๋ง ๋๋ฆฐ ์ฑ cnt๋ฅผ ์ถ๋ ฅํด๋ณด๋ฉด ์ด๋ ๊ฒ ์ ์์ ์ผ๋ก answer์ ๋ชจ๋ ์์๋ค์ ์ฝ์(2~n-1 ์ฌ์ด)๊ฐ ์ถ๋ ฅ๋๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
๊ฒฐ๊ตญ remove๋ก ์ธํด ์ ๋ฆฌ์คํธ์ธ answer์ ์ํฅ์ด ๊ฐ๊ณ ,
๊ทธ ์ํฅ์ผ๋ก ์ธํด ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ ๊ฒ์ด๋ผ๊ณ ์์ธกํ ์ ์๋ค.
list์์ remove๋ฅผ ์ฌ์ฉํ์ฌ ์์ดํ ์ ์ ๊ฑฐํ๋ฉด์ ๋์์ for loop์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ,
๋ฆฌ์คํธ์ ๊ธธ์ด๊ฐ ๋ฐ๋๊ธฐ ๋๋ฌธ์ ์ธ๋ฑ์ค๊ฐ ๋ง๊ฐ์ง ์ ์๋ค.
for n in answer:
print(f"answer: {answer}")
cnt = []
for m in range(2,n):
if n%m == 0:
cnt.append(m)
if len(cnt) >0:
answer.remove(n)
remove๋๊ณ ๋ค์ n์ ๋ฝ์ ๋ answer ๋ฆฌ์คํธ๋ ๋ค์๊ณผ ๊ฐ์ ํํ์ด๋ค.
์ด์ฒ๋ผ remove๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ, ๋ฆฌ์คํธ์ ์ธ๋ฑ์ค๊ฐ ๋ณ๊ฒฝ๋๊ณ
remove๋ฅผ ํตํด ์ ๊ฑฐ๋ 10์ด ์๋ answer[0] ์๋ฆฌ์
์๋ answer[1] ๊ฐ์ด์๋ 9๊ฐ ๋ค์ด๊ฐ๋ฉด์ ๋ฐฐ์ด์ด ํ์ด์ง๊ฒ ๋๋ ๊ฒ์ด๋ค.
์ด ๋๋ฌธ์ 9, 12, 13, 17์ ๊ฑด๋๋ด ์ฑ for๋ฌธ์ด ๋์๊ฐ๋ ๊ฒ..!
๐ต๏ธโ๏ธ ๋ฌธ์ ํด๊ฒฐ
์ด ๋ฌธ์ ๋ ๋ค์๊ณผ ๊ฐ์ด sorted(answer)๋ฅผ ์ฌ์ฉํด answer๋ฅผ ์ ๋ ฌํจ์ผ๋ก์จ ํด๊ฒฐํ ์ ์๋ค.
for n in sorted(answer):
cnt = []
for m in range(2,n):
if n%m == 0:
cnt.append(m)
print(f"cnt: {cnt}")
if len(cnt) != 0:
answer.remove(n)
print(f"answer: {answer}")
ํํฐ๋์ ์กฐ์ธ
for๋ฌธ์ ๋ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ ๋ก์ง์ ์๊ฐํด๋ณด์.
๋ฆฌ์คํธ์ ๋ฌด์์ธ๊ฐ๋ฅผ ๋ฃ์๋ค๊ฐ ๋นผ๋ ๊ณผ์ ์์ฒด๊ฐ ๋นํจ์จ์ ์ด๊ธฐ ๋๋ฌธ์
๋ฆฌ์คํธ ์ปดํ๋ฆฌํธ์ ์ ์ด์ฉํด์ ํ์ํ ๋ฐ์ดํฐ๋ง ๋ฆฌ์คํธ์ ๋ฃ๋ ์์ ์ ํ๋ ๊ฒ์ ์ถ์ฒ.
'๐ Today I Learn > ๐พ Error' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python] ModuleNotFoundError: No module named 'tensorflow.keras' (1) | 2024.06.12 |
---|---|
[Python] UnboundLocalError: local variable referenced before assignment (0) | 2024.05.10 |
[Python] IndexError: list index out of range (0) | 2024.05.07 |
[SQL] Error [1406][22001]: Data truncation: Data too long for column (0) | 2024.05.04 |