๋ฌธ์ ๊ฐ ๋ญ๋ง์ธ์ง ํ์์์์ฐธ ๋ค์ฌ๋ค๋ดค๋คใ กใ ก
๋ฐฑ์ค์ด๋ ํ๋ก๊ทธ๋๋จธ์ค๋ ์์์๋ถํฐ ์ฐจ๋ก๋๋ก ์ ๋ฆฌํ ์๊ฐ์ด์๋๋ฐ ์ด๊ฒ.. ์ง์ง ๊น๋จน๊ธฐ์ ์ ์จ๋ฌ์ผํ ๊ฑฐ๊ฐ์์ ๊ธํ๊ฒ ์์ฑ์ค๐ฃ
๋ถ๋ช ์๋ฐ๋ก๋ ํ์๋๊ฑด๋ฐ ์์บ ์ค๋๊ฑธ๋ ธ๋์ง ์์์์ง๋ง ์ํผ ํ์ด๋ ์ด๋ ๋ค
1๋ถํฐ 10000์ฌ์ด์ ์ ํ๋๋ฒ๋ฅผ ๋ชจ๋ ์ถ๋ ฅํ๋ฉด ๋๋ค.
๊ทธ๋ฌ๋ฉด for๋ฅผ 1๋ถํฐ 10000๊น์ง ๋๋ค๊ณ ๊ฐ์ ํด๋ณด๋ฉด
i, hap, tmp (i๋ ์ธ๋ฑ์ค, hap์ ๊ฐ ์๋ฆฌ์์ ์ดํฉ, tmp๋ i+hap)
1, 1, 2
2, 2, 4
3, 3, 6
4, 4, 8
..
10, 1, 11
11, 2, 13
...
์ด๋ฐ์์ผ๋ก ์งํ์ด ๋ ๊ฒ์ด๋ค.
๊ทธ๋์ ํฌ๊ธฐ๊ฐ 10001 ์ง๋ฆฌ์ธ ๋ฐฐ์ด์ ๋ง๋ค์ด๋๊ณ (์ 10001์ด๋๋ฉด index๋ tmp๋ ๋๊ฐ์ด ์ฐ๊ณ ์ถ์ด์)
arr[tmp] = 1 ๋ก ๋ณ๊ฒฝ์ ํด์ค(์ด๋๋ค์ ์ ํ๋๋ฒ๊ฐ ์๋๋ค! ๋ผ๊ณ ํ์)
arr[0]์ ๋ฐ๋ก ์ฒ๋ฆฌ๋ฅผ ํด์ค์ผํ๋? ํ๋๋ฐ ๋ณด๋๊น
0, 0, 0 ์ด์ด์ arr[0]=1 ์ด ๋ผ์์๋ค... ๊ทธ๋์ ๋ฐ๋ก ํด์ฃผ์ง๋ ์์์
๊ทธ๋ฌ๋ฉด index๊ฐ ์ ํ๋๋ฒ์ธ ๋๋ค์ 0์ด ๋ค์ด์์๊ฑฐ๊ณ , ์๋ ๋๋ค์ 1์ด ๋ค์ด์์๊ฑฐ๋๊น
enumerate๋ฅผ ์ฌ์ฉํด์ v๊ฐ 0์ธ ์ ๋ค์ i๋ฅผ ์ถ๋ ฅํด์ค
# 4673 ๋ฒ : ์
ํ๋๋ฒ
def def_4673():
def get_num_hap(n):
remain = 0
while n > 0:
remain += n % 10
n = n//10
return remain
arr_num = [0]*10001
for i in range(10001):
hap = get_num_hap(i)
tmp = hap + i
if tmp < 10001:
arr_num[tmp] = 1
for i, v in enumerate(arr_num):
if v == 0:
print(i)
์ค๊ฐ์ ์๋ผ๋จน๊ณ ๊ฒฐ๊ณผ์ฐฝ์ ์ด๋ ์ต๋๋ค(โฃ_โฃ”)
'๐๊ณต๋ถ > ์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค Lv.2] ์ฌ๋ฐ๋ฅธ ๊ดํธ (0) | 2020.11.30 |
---|---|
[๋ฐฑ์ค] 2110๋ฒ ๊ณต์ ๊ธฐ ์ค์น (0) | 2020.11.24 |
[๋ฐฑ์ค] 2805๋ฒ ๋๋ฌด ์๋ฅด๊ธฐ (0) | 2020.11.24 |
[๋ฐฑ์ค] 10816๋ฒ ์ซ์ ์นด๋2 (0) | 2020.11.22 |
[๋ฐฑ์ค] 1654๋ฒ ๋์ ์๋ฅด๊ธฐ (0) | 2020.11.20 |
๋๊ธ