공부하기/백준

[Python] 백준 풀기 14935 - FA

XEV 2022. 11. 26. 20:31

파이썬 백준 14935번

브론즈4

https://www.acmicpc.net/problem/14935

 

14935번: FA

정수 x가 FA수 라면 FA를 출력하고, 아니라면 NFA를 출력한다.

www.acmicpc.net

 

 

 

 

 

문제 보기

분류: 수학, 구현, 애드 혹

 

 

 

 

 

문제 풀기

주어진 F(x) 함수의 규칙에 따라 코드를 작성한다.

 

 

int 로 입력받은 주어진 숫자는 리스트에 각 자리별로 나누어 저장하고 리스트 첫 번째 숫자 x_ls[0] 와 리스트 길이 (x 의 자릿수) len(x_ls) 를 곱하여 변수 fx 에 저장한다.

    fx = x_ls[0] * len(x_ls)

 

주어진 x 와 계산되어 나온 fx 가 다르면 재귀적으로 fnFXFunction(fx) 를 다시 실행하여 x == fx: 가 될 때까지 반복한다.

 

 

생각해 보면 이 규칙은 언젠가 한자리의 수가 만들어지기 때문에 무조건 FA 를 반환한다. 따라서 print("FA") 한 줄만 제출하여도 정답으로 처리된다.

 

 

 

 

 

코드 보기

import sys
inputdata = sys.stdin.readline

def fnFXFunction(x):
    x_ls = [int(i) for i in str(x)]
    print(x_ls)         # test print
    
    fx = x_ls[0] * len(x_ls)
    print(fx)           # test print
    
    if x != fx:
        fnFXFunction(fx)
    elif x == fx:
        print("FA")


if __name__ == "__main__":
    x = int(inputdata().strip())
    
    fnFXFunction(x)



# 932

# [9, 3, 2]
# 27
# [2, 7]
# 4
# [4]
# 4

# FA