์ฐ์ , 1~99๊น์ง ์ซ์๋ ํ์์ ๊ฐ์๊ฐ N๊ฐ์.
100์ด์์ ์
๋ ฅ๋ฐ๋ ์๋ฅผ ๋ฐฐ์ด์ ๋ฃ๊ณ , [0],[1] ์ฐจ์ด์ [2],[1] ์ฐจ์ด๊ฐ ๊ฐ์ผ๋ฉด cnt๋ฅผ ์ฆ๊ฐ์์ผ,
cnt๋ฅผ return ํด๋ณด์
/* if/for ๋ฌธ ์๊ณ ๋ฆฌ์ฆ */
1~1000๊น์ง ๋ฐ๋ณต๋ฌธ i๋ฅผ ๋๋ฆฌ๋ฉด์ ์ผ์ด์ค if๋ฌธ์ผ๋ก ๊ตฌ๋ถ.
N์ด 100๋ฏธ๋ง : ๋ฐ๋ก N ์ถ๋ ฅ
N์ด 100์ด์ : list์ ์๋ฆฟ์๋ฅผ ์ง์ด๋ฃ์ด [0],[1],[2] ๋น๊ตํด์ ํ์๋ง cnt++
def HanSu(n):
cnt = 0;
for i in range(1,n+1):
# 1๋ถํฐ n๊น์ง์ ์๋ฅผ ๋ฐฐ์ด์ ์ ์ฅ
han = list(map(int,str(i)))
# 100๋ฏธ๋ง : ๊ฒฝ์ฐ ์๊ธฐ์์ ์ด ํ์์ด๊ธฐ ๋๋ฌธ์ cnt ์ฆ๊ฐ
if i < 100 :
cnt += 1;
# 100์ด์ : ํ์(์ฒซ๋ฒ์งธ ๋๋ฒ์งธ ์ ์ฐจ์ด == ๋๋ฒ์จฐ ์ธ๋ฒ์งธ ์ ์ฐจ์ด)์ธ ๊ฒฝ์ฐ cnt ์ฆ๊ฐ
elif han[0]-han[1] == han[1]-han[2] :
cnt += 1;
return cnt
N = int(input())
print(HanSu(N))
def HanSu(n):
cnt = 0; #์ฐ์ ํ์ ๊ณ์ฐํ ๋ณ์ ๋ฏธ๋ฆฌ ๋ง๋ค์ด๋๊ธฐ
for i in range(1, n+1):
if i < 100 :
# 100๋ฏธ๋ง์ธ ๊ฒฝ์ฐ ์ฝ๋
elif i >= 100 :
# 100์ด์์ธ ๊ฒฝ์ฐ ์ฝ๋
return cnt;
N = int(input())
print(HanSu(N))
์ธ๋ฐ์๋ ๋ฒ์์ง์ ์ ์ค์ด๊ณ ๋ฑ 2๊ฐ์ง ์ผ์ด์ค์ ํ๋์ ๋ฐ๋ณต๋ฌธ์ผ๋ก ๊ตฌํํ์
(์ค๋ต)
for i in range(1,n+1):
han = list(map(int,str(i))) #han์ 3์๋ฆฟ์ ๊ฐ๊ฐ ์ธ๋ฑ์ฑ
#100๋ฏธ๋ง : cnt++
if i < 100 :
cnt += 1;
#100์ด์ : ๊ฐ ์๋ฆฟ์ ๋น๊ต ํ ์ผ์นํ๋ฉด cnt++
elif han[0]-han[1] == han[1]-han[2] :
cnt += 1;
๐๐ปnum_list ์์ด ๋ฐ๋ก ํ์๋ฅผ ์นด์ดํ
โป ๋ด๊ฐ ์ฒ์ ๊ตฌํํ d(n) ํจ์
(๊ฒฐ๋ก ์ ์ผ๋ก ์ ๋ต์ด๊ธด ํ์ง๋ง, ๋นํจ์จ์ ์)
<def HanSu(N):
if N > 110 : #110๋ณด๋ค ํด ๋ ํ์๋ 99์์ ๋ํด๊ฐ์ผํจ
cnt = 99;
for j in range(110, int(N)+1):
han_list = list(map(int,str(j))) # [1],[1],[0]
#num์ด๋ผ๋ ๋น๊ต list๋ฅผ ๋ง๋ค์ (์ด๊ฑด ๋ฌด์กฐ๊ฑด han list ๋ณด๋ค ํ์๋ฆฟ์ ์๋ค)
num_list = [0]*(len(han_list)-1)
#์ด ๋ฐ๋ณต๋ฌธ์ han_list์ ๋ด๊ธด ๋ฐฐ์ด ์ธ๋ฑ์ค์ ์์๋ฅผ ๋๋ฉด์
#์ฐจ์ด๋ฅผ num_list์ ์ ์ฅํ๊ธฐ ์ํ for๋ฌธ์ด๋ค
for i in range(len(han_list)):
#"[i+1]๋ฒ์งธ ์ธ๋ฑ์ค - [i]๋ฒ์งธ ์ธ๋ฑ์ค"๋ฅผ num_list์ ๋ฃ์ ์์
#han_list๋ณด๋ค num_list๊ฐ ํฌ๋ฉด ์๋๋๊น ๊ธธ์ด๋ฅผ ์ง์ ํด๋์
if i+1 < len(han_list) :
num_list[i] = (han_list[i+1])-(han_list[i])
#์ ๋ฐ๋ณต๋ฌธ์์ ๋ง๋ค์ด๋ num_list์ [0]๋ฒ์งธ ์ธ๋ฑ์ค์ ๋๋จธ์ง ์ธ๋ฑ์ค๊ฐ ์ค๋ณต๋๋ฉด(count)
#cnt++๋ฅผ ํ๋ฉฐ ์ต์์ for๋ฌธ์ ๋ค์ ๋ฐ๋ณตํ๋ค
if num_list.count(num_list[0]) == (len(han_list)-1) :
cnt += 1;
elif N < 100 : #100๋ณด๋ค ์์ผ๋ฉด ํ์๋ N๊ฐ
cnt = N;
else: #100๋ณด๋ค ํฌ๊ณ 110๋ณด๋ค ์์๋ ํ์๋ 99๊ฐ
cnt = 99;
return cnt
1) 100๋ณด๋ค ์์ผ๋ฉด ํ์๋ N๊ฐ,
2) 100๋ณด๋ค ํฌ๊ณ 110๋ณด๋ค ์์ผ๋ฉด ํ์๋ 99๊ฐ๋ก ํต์ผ โ ์ด๊ฒ ํ์๊ฐ ์๋ ๊ณผ์ ์
3) 110๋ณด๋ค ํฌ๋ฉด ์๋ฆฟ์๋ง๋ค ๋น๊ตํด๊ฐ๋ฉด์ ํ์๋ฅผ ๋ํด์ผ ํจ
๐๐ป๋ง๋ค. ๊ฒฐ๋ก ์ ์ผ๋ก ๋ฒ์์ง์ ๋ถํฐ ์๋ชป๋์๋ค.
"1~99 / 100~109 / 110~ == 1~99 / 100~" ์ด๋ฏ๋ก ๊ตณ์ด 99~110์ผ๋ก ๋๋ ํ์๋ ์์๊ฑฐ๋์,
100~110์ "110~"์ ์ผ์ด์ค์ ๋์ผํ๊ฒ ๋์ํ๋ฏ๋ก ๋ ์ผ์ด์ค๋ฅผ ํฉ์ณ๋ ์๊ด์๋ค
1) ๋์๋ฆฟ์ ์ดํ๋ฉด ๋ฐฐ์ด์ [2]๋ฒ์งธ ์ธ๋ฑ์ค๊ฐ ์์ผ๋ฏ๋ก N์ผ๋ก ์ถ๋ ฅํด์ค์ผ ํ๋ ๊ฒ์ด๊ณ ,
2) ์ธ์๋ฆฟ์๋ฉด [0][1] [2] ๋ค ์์ผ๋ฏ๋ก "[1]-[0] == [2]-[1]"์ผ๋ก ๋น๊ต๋ฅผ ํ ์ ์๋๋ฐ,
3) ๋ค์๋ฆฟ์๋ฉด???? [3]๋ ํ์ํ๋๊น ํ ,,, ์๋ฆฟ์ ์ฐจ์ด ๋น๊ต๋ฅผ ์ํ num_list๋ฅผ ๋ง๋ค์.
๐คท๐ปโโ๏ธ "[1]-[0] == [2]-[1]" ๋์ "[i+1]-[i]"๋ฅผ num_list์ ๋ฃ๋๊ฑธ๋ก ํ๊ณ ,
๋์ , "if i+1 < len(han_list)"๋ผ๋ ๋ฒ์์ง์ ์ ํ์
๐๐ป์ด์ ์ ๋๊ตญ..
์ผ๋จ ๋ฌธ์ ์์ N์ 1~1000๊น์ง์ ์, ์ฆ "3์๋ฆฟ์๊น์ง"๋ผ๊ณ ๋ฒ์๋ฅผ ๋ช
์ํ๋ค.
[3]๋ฒ์งธ ์ธ๋ฑ์ค๋ ๊ณ ๋ คํ ํ์๋ ์์๋ ๊ฒ์!
๊ฒฐ๋ก ์ ์ผ๋ก num_list๋ ์ธ๋ฐ์๋ ๋ฉ๋ชจ๋ฆฌ๋ญ๋น...