코딩 테스트/Baekjoon

S4 1065. 한수

  • -
728x90
반응형

문제 보기 :  1065번: 한수


문제

  • 정답률 : 54%


작성 코드

def is_hannum(num):
    global answer
    num = str(num) ; isittrue=True
    gap = int(num[1])-int(num[0])
    for i in range(1,len(num)-1):
        if int(num[i+1])-int(num[i])!=gap:
            isittrue=False
            break
    if isittrue:
        answer += 1


num = int(input())
if num < 100:
    print(num)
else:
    answer = 99
    for hannum in range(100,num+1):
        is_hannum(hannum)

    print(answer)
    # print(len(an))

풀이

자리수마다 같은 간격을 가지는 수를 “한수”라고 한다고 한다. 수학 전공인데도 처음 들어봤다..

처음에는 1→ 12 → 123 → 1234 이런식으로 구현하는건가 싶었는데,
최대 num이 1000이라 그렇게 하지 않아도 시간 조건에는 걸릴 것처럼 보이지 않았다.

그래서 if문으로 100을 넘었을 경우와 안 넘었을 경우를 먼저 나누어 둔 다음,
100을 넘었을 경우에만 자릿수 간격을 확인하는 함수를 짜서 문제를 풀이했다.

320x100
728x90

'코딩 테스트 > Baekjoon' 카테고리의 다른 글

S2 1406. 에디터  (0) 2024.11.27
S4 2217. 로프  (0) 2024.11.27
G5 7569. 토마토  (0) 2024.11.27
S4 1764. 듣보잡  (0) 2024.11.26
S2 4949. 균형잡힌 세상  (0) 2024.11.25
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.