โถ ๋ฐ์ดํฐ ๋ฆฌํฐ๋ฌ์ - 5. ๊ฒฐ๋ก ๋์ถ
โถ Python ์ฝ๋์นดํ 23๋ฒ ๋ฆฌ๋ทฐ
โถ Python ๋ผ์ด๋ธ ์ธ์
โ 23๋ฒ. ์ฝ๋ผ์ค ์ถ์ธก
1937๋ Collatz๋ ์ฌ๋์ ์ํด ์ ๊ธฐ๋ ์ด ์ถ์ธก์, ์ฃผ์ด์ง ์๊ฐ 1์ด ๋ ๋๊น์ง ๋ค์ ์์ ์ ๋ฐ๋ณตํ๋ฉด, ๋ชจ๋ ์๋ฅผ 1๋ก ๋ง๋ค ์ ์๋ค๋ ์ถ์ธก์ ๋๋ค. ์์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.1-1. ์ ๋ ฅ๋ ์๊ฐ ์ง์๋ผ๋ฉด 2๋ก ๋๋๋๋ค. 1-2. ์ ๋ ฅ๋ ์๊ฐ ํ์๋ผ๋ฉด 3์ ๊ณฑํ๊ณ 1์ ๋ํฉ๋๋ค. 2. ๊ฒฐ๊ณผ๋ก ๋์จ ์์ ๊ฐ์ ์์ ์ 1์ด ๋ ๋๊น์ง ๋ฐ๋ณตํฉ๋๋ค.์๋ฅผ ๋ค์ด, ์ฃผ์ด์ง ์๊ฐ 6์ด๋ผ๋ฉด 6 โ 3 โ 10 โ 5 โ 16 โ 8 โ 4 โ 2 โ 1 ์ด ๋์ด ์ด 8๋ฒ ๋ง์ 1์ด ๋ฉ๋๋ค. ์ ์์ ์ ๋ช ๋ฒ์ด๋ ๋ฐ๋ณตํด์ผ ํ๋์ง ๋ฐํํ๋ ํจ์, solution์ ์์ฑํด ์ฃผ์ธ์. ๋จ, ์ฃผ์ด์ง ์๊ฐ 1์ธ ๊ฒฝ์ฐ์๋ 0์, ์์ ์ 500๋ฒ ๋ฐ๋ณตํ ๋๊น์ง 1์ด ๋์ง ์๋๋ค๋ฉด โ1์ ๋ฐํํด ์ฃผ์ธ์.
while๋ฌธ์ด count โค 500์ธ ๋์ ๊ณ์ ๋ฐ๋ณต๋ฌธ ์คํnum ๊ฐ์ ๊ณ์ ์ฐ์ฐ์ด ๋๊ธด ํ์ง๋ง while๋ฌธ์ count๊ฐ 500์ ๋์ด์ผ๋ง ์ค๋จ๋จwhile๋ฌธ์ True ์ํ๋ก ๋๊ณ while๋ฌธ ๋ด๋ถ์ ์ข
๋ฃ ์กฐ๊ฑด์ ๊ธฐ์ฌํ๊ธฐ# ์ค๋ฅ ์ฝ๋
def solution(num):
answer = 0
count = 0
if num == 1:
answer = 0
else:
while count <= 500:
count += 1
if num == 1:
answer = count
elif count == 500:
answer = -1
elif num % 2 == 0:
num = num // 2
elif num % 2 == 1:
num = num * 3 + 1
return answer
# ์์ ๋ ์ฝ๋
def solution(num):
answer = 0
count = 0
if num == 1: # num์ด 1๋ก ์ฃผ์ด์ก์ ๋ ํํฐ๋ง
answer = 0
else:
while True:
if count == 500:
answer = -1
break # count๊ฐ 500์ด ๋๋ฉด while๋ฌธ ์ข
๋ฃ ํ answer ๋ฐํ
elif num == 1:
answer = count
break # num์ด 1์ด ๋๋ฉด while๋ฌธ ์ข
๋ฃ ํ count ๋ฐํ
elif num % 2 == 0:
num = num // 2
elif num % 2 != 0:
num = num*3+1
count += 1 # while๋ฌธ ๋ฐ๋ณต ํ์ count
return answer
1. enumerate()
# ์์ ์ฝ๋
for i, name in enumerate(['body', 'foo', 'bar']):
print(i, name)
"""
[ ์ถ๋ ฅ ๊ฒฐ๊ณผ ]
0 body
1 foo
2 bar
"""
2. ๋์ ๋๋ฆฌ ์ ์ถ๊ฐํ๊ธฐ
dict[key] = โvalueโ ์ ๊ฐ์ ํ์์ผ๋ก ๊ธฐ์กด์ ๋์
๋๋ฆฌ์ ์ ์ถ๊ฐkey๊ฐ ๊ธฐ์กด ๋์
๋๋ฆฌ์ ์กด์ฌํ์ง ๊ฒฝ์ฐ ์๋ก ์ถ๊ฐ๋๋ฉฐ, key๊ฐ ์๋ ๊ฒฝ์ฐ๋ value๋ง ์
๋ฐ์ดํธ# ์์ ์ฝ๋
a = {1: 'a'}
# ์๋ก์ด key, value ์ถ๊ฐ
a[2] = 'b'
print(a) # ์ถ๋ ฅ ๊ฒฐ๊ณผ: {1: 'a', 2: 'b'}
# ๊ธฐ์กด key์ ์๋ก์ด value ์
๋ฐ์ดํธ
a[1] = 'b'
print(a) # ์ถ๋ ฅ ๊ฒฐ๊ณผ: {1: 'b', 2: 'b'}
3. ๋ฌธ์์ด ๋ค๋ฃจ๊ธฐ
split()[Space] , [Tab] , [Enter] )๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฌธ์์ด์ ๋๋a = "Life is too short"
a.split()
'''
[ 'Life', 'is', 'too', 'short']
'''
b = "a:b:c:d"
b.split(':')
'''
['a','b','c','d']
'''
find()a = "Python is the best choice"
print(a.find('b')) # ์ถ๋ ฅ: 14
print(a.find('k')) # ์ถ๋ ฅ: -1
str.endswith(suffix[, start[, end]])suffix๋ก ๋๋๋ฉด True , ๊ทธ๋ ์ง ์์ผ๋ฉด False ๋ฐํsuffixย = ํ์ธํ ์ ๋ฏธ์ฌ ๋ฌธ์์ด ๋๋ ๋ฌธ์์ด์ ํํstart = ๊ฒ์ฌํ ์์ ์์น์ ์ธ๋ฑ์ค โ ์ง์ ํ์ง ์์ผ๋ฉด ๋ฌธ์์ด์ ์ฒ์๋ถํฐ ๊ฒ์ฌend = ๊ฒ์ฌํ ๋ ์์น์ ์ธ๋ฑ์ค โ ์ง์ ํ์ง ์์ ๊ฒฝ์ฐ ๋ฌธ์์ด ๋๊น์ง ๊ฒ์ฌ