반응형
[문제 출처]
https://www.acmicpc.net/problem/1356
[문제 풀이]
어떤 10진수가 주어졌을 때, 그 수를 앞과 뒤 이렇게 두 부분으로 나누었을 때,
각 부분의 자릿수들의 곱이 서로 같을 때 이 수를 유진수라고 한다.
입력으로 주어진 수가 유진수인지 아닌지 판별하는 코드를 작성하는 문제이다.
예를 들어
1221 같은 경우
12/21로 나눈다면, 1x2 = 2x1이므로 유진수이다.
1236의 경우
123/6으로 나눈다면, 1x2x3 = 6이므로 유진수이다.
주어진 수가 유진수인지 아닌지 알기 위해서는 앞뒤로 나누는 모든 경우의 수에 대해서, 각 부분의 곱을 비교해서 알아봐야 한다.
1236이라면
1/236
12/36
123/6
이렇게 3가지 경우로 나눌 수 있으며 각 경우에서 곱을 구해서 비교하면 된다.
#1356
n = input()
check = 0
for i in range(1,len(n)):
a = n[:i]
b = n[i:]
mul_a = 1
for A in a:
mul_a *= int(A)
mul_b = 1
for B in b:
mul_b *= int(B)
if mul_a == mul_b:
check = 1
break
if check == 1:
print("YES")
else:
print("NO")
반응형
'알고리즘 > python' 카테고리의 다른 글
[python/파이썬] 백준 1075 나누기 (0) | 2023.02.09 |
---|---|
[python/파이썬] 백준 1059 좋은 구간 (0) | 2023.02.08 |
[python/파이썬] 백준 1246 온라인 판매 (0) | 2023.02.06 |
[python/파이썬] 백준 1235 학생 번호 (0) | 2023.02.03 |
[python/파이썬] 백준 1297 TV 크기 (0) | 2023.02.02 |