とおき
토오끼
とおき
전체 방문자
오늘
어제
  • 분류 전체보기 (40)
    • 과제 (16)
    • 백준 (14)
    • C 언어 (5)
    • 잡동사니 (5)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • set함수
  • 주피터 오류
  • 최댓값
  • 알고리즘
  • 11720
  • 파이썬
  • 반복문
  • 별표 출력
  • 8958
  • 백준
  • 문자열
  • 중복값
  • 목록
  • 입출력
  • 파이썬 오류
  • FOR문
  • 알파벳 찾기
  • 2523
  • 숫자의 합
  • 유클리드 호재법
  • BOJ

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
とおき

토오끼

백준

[백준/Python3] 1356번 유진수

2022. 5. 5. 17:46

문제

유진수는 어떤 수를 10진수로 표현한 뒤 그 수를 두 부분으로 나눴을 때, 앞부분 자리수의 곱과 뒷부분 자리수의 곱이 같을 때를 말한다.

예를 들어, 1221은 유진수이다. 12와 21로 나눴을 때, 앞부분 자리수의 곱 1*2는 뒷부분 자리수의 곱 2*1과 같기 때문이다. 1236도 마찬가지로 유진수이다. 하지만, 1234는 아니다. 수를 나눌 때 항상 연속된 자리수를 나눠야하고, 각 부분에 적어도 한자리는 있어야 한다.

예를 들어, 12345는 총 4가지 방법으로 나눌 수 있다. 1-2345, 12-345, 123-45, 1234-5 어떤 수 N이 주어질 때, 이 수가 유진수인지 아닌지 구하는 프로그램을 작성하시오.

입력

첫째 줄에 수 N이 주어진다. 이 수는 2,147,483,647보다 작거나 같은 자연수이다.

출력

첫째 줄에 N이 유진수이면 YES, 아니면 NO를 출력한다.

예제 입력 1

1236

예제 출력 1

YES

 

n = input()
for i in range(1,len(n)): # 5554를 입력받았을때 i 는 1,2,3,4 를 받음
    left = right = 1 
    for x in n[:i]: # n 문자열을 하나씩 슬라이싱 하여 값을 x 에 받음.
        left *= int(x) # left(1) 에 x 를 하나씩 곱함.
    for y in n[i:]:
        right *= int(y)
    if left == right:
        print("YES")
        break      #break 가 작동하기전까지 n 의 슬라이싱 범위를 바꾸어 유진수인지 확인함
else:
    print('NO')

'백준' 카테고리의 다른 글

[백준/Python3] 1259번 팰린드롬수  (0) 2022.05.18
[백준/Python3] 1157번: 단어 공부  (0) 2022.05.05
[백준/Python3] 1934, 2609, 5347 등 def 를 이용한 최대공약수, 최소공배수 구하기.  (0) 2022.05.02
[백준/Python3] 2675번: 문자열 반복  (0) 2022.04.18
[백준/Python3] 10809번: 알파벳 찾기  (0) 2022.04.18
    '백준' 카테고리의 다른 글
    • [백준/Python3] 1259번 팰린드롬수
    • [백준/Python3] 1157번: 단어 공부
    • [백준/Python3] 1934, 2609, 5347 등 def 를 이용한 최대공약수, 최소공배수 구하기.
    • [백준/Python3] 2675번: 문자열 반복
    とおき
    とおき

    티스토리툴바