1065 : ํ์#
์๊ฐ์ ํ |
๋ฉ๋ชจ๋ฆฌ์ ํ |
์ ๋ต๋น์จ |
---|---|---|
2์ด |
128MB |
54.286% |
๋ฌธ์ #
์ด๋ค ์์ ์ ์ X์ ๊ฐ ์๋ฆฌ๊ฐ ๋ฑ์ฐจ์์ด์ ์ด๋ฃฌ๋ค๋ฉด, ๊ทธ ์๋ฅผ ํ์๋ผ๊ณ ํ๋ค. ๋ฑ์ฐจ์์ด์ ์ฐ์๋ ๋ ๊ฐ์ ์์ ์ฐจ์ด๊ฐ ์ผ์ ํ ์์ด์ ๋งํ๋ค. N์ด ์ฃผ์ด์ก์ ๋, 1๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , N๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ํ์์ ๊ฐ์๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
input#
0 < n <= 1000
output#
1๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , n๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ํ์์ ๊ฐ์๋ฅผ ์ถ๋ ฅ
think#
๋ฑ ๋ณด์ํ๋ n ์ดํ์ ์์ ๋ฌผ๋ค์ ๊ธฐ๋กํ๋ฉด์ ๊ฐ์ผํ dp๋ฌธ์ ๋ก ๋ณด์ธ๋ค. ์ ํ์์ ์จ๋ณด์โฆ ๊ณ ํ์ผ๋ ํ๊ณ ๋ณด๋, dp๋ก ํธ๋ ๋ฌธ์ ๊ฐ์ง๋ง ์ฌ์ค์ ์ฌ๋๋ค์ brute force๋ก ์์ ํ์ํ๋ฉด์ ํ๋๋ฐ ๊ทธ๊ฒ ํจ์ฌ ๋น ๋ฅธ ๊ฒ ๊ฐ๋ค. ๊ตณ์ด dp๋ฅผ ์ฌ์ฉํด์ผํ ํ์๋ ์๋ ๊ฒ์ผ๋ก ๋ณด์ธ๋ค.
python#
import sys, os
problem_num = "1065"
path = os.getcwd() + f"\\txt\\{problem_num}" + ".txt"
sys.stdin = open(path, "r")
input = sys.stdin.readline
n = int(input())
from typing import List
def spliting(x:int) -> List[int]:
'''
make a x:int to list of elements
'''
return [int(i) for i in str(x)]
class Hansu:
def __init__(self,n):
self.dp = [i for i in range(1,n+1)]
def arithmetic_sequence(self):
bool_list = []
for i in self.dp:
if (i < 100) or (spliting(i)[2] - spliting(i)[1] == spliting(i)[1] - spliting(i)[0]):
bool_list.append(True)
else:
bool_list.append(False)
return bool_list.count(True)
print(Hansu(n).arithmetic_sequence())
144