BOJ / 1475 / ๋ฐฉ ๋ฒํธ / Python
Updated:
๐ป code
01 lambda ์ด์ฉ
import sys
input = sys.stdin.readline
N = input().rstrip()
ans = 1
nums = [1 for _ in range(10)]
for n in N:
n = int(n)
if nums[n] > 0:
nums[n] -= 1
else:
if (n == 6 and nums[9] > 0):
nums[9] -= 1
elif (n == 9 and nums[6] > 0):
nums[6] -= 1
else:
nums = list(map(lambda x: x+1, nums)) # *
nums[n] -= 1
ans += 1
print(ans)
์ด๋ฐ์ N์ ์
๋ ฅ๋ฐ์ ๋ .rstrip()์ ํตํด ๊ฐํ๋ฌธ์๊ฐ ํจ๊ป ๋ฐ์์ง์ง ์๋๋ก ์ฃผ์ํ๋ค.
์ฌ์ฉ ๊ฐ๋ฅํ ๊ฐ ์ซ์๋ค์ ๊ฐ์๊ฐ ๋ด๊ธด nums ๋ฆฌ์คํธ์ ํด๋น ์ซ์๊ฐ ๋จ์ ์๋์ง ์ฒดํฌํ๋ค.
๋ง์ฝ ์ฌ์ฉ ๊ฐ๋ฅํ ์ซ์๊ฐ ์๋ค๋ฉด ์ซ์ ์ธํธ๋ฅผ ์ถ๊ฐํ๋ค. ์ฆ, nums๋ด ๋ชจ๋ ์์๋ค์ ๊ฐ์ 1์ฉ ๋๋ฆฐ๋ค.
์ซ์ 6๊ณผ 9์ ๋ํด์๋ ์กฐ๊ฑด๋ฌธ์ ๋ฐ๋ก ์์ฑํ๋ค.
02
import sys
input = sys.stdin.readline
N = input().rstrip()
cnts = [0] * 9 # 0 ~ 8
for n in N:
n = int(n)
if n == 9:
n = 6
cnts[n] += 1
cnts[6] = (cnts[6]+1) // 2
print(max(cnts))
N์ ๊ตฌ์ฑํ๋ ์ซ์๋ค์ ๊ฐ์๋ฅผ ์นด์ดํธํ๋ค.
์ด๋ 9๋ 6์ผ๋ก ์ทจ๊ธํ์ฌ ์นด์ดํธํ๋ค.
โ๏ธ๐
lambda function
์ต๋ช
ํจ์, ํจ์๋ฅผ ์ ์ธํ์ง ์๊ณ ์ฌ์ฉํ ์ ์๋ค.
lambda ๋งค๊ฐ๋ณ์ : ํํ์
def func(x, y):
return x+y
func(1, 2)์ (lambda x, y : x+y)(1, 2)์ ๊ฐ์ ๊ฐ๋ค.
map
map(ํจ์, ๋ฆฌ์คํธ)
๋ฆฌ์คํธ์์ ์์๋ฅผ ํ๋์ฉ ๊บผ๋ด์ ํจ์๋ฅผ ์ ์ฉํ๊ณ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ฆฌ์คํธ๋ก ๋ฐํํด ์ค๋ค.
Leave a comment