Bronze1 문제.
자기전에 머리 식힐겸 풀어보는 문제로 적당하다.
#include <iostream>
using namespace std;
int main()
{
int N = 0;
int parsing[11];
int input;
cin >> input;
if (input < 10) //한자리수
{
cout << "NO";
return 0;
}
else
{
//parsing 작업
while (input > 0)
{
parsing[N] = input % 10;
input /= 10;
N++;
}
// 하나하나 따져보면서 유진수인지 확인
for (int i = 0; i < N - 1; i++)
{
int left = 1, right = 1;
//왼쪽 곱
for (int j = 0; j <= i; j++)
{
left *= parsing[j];
}
//오른쪽 곱
for (int j = i + 1; j < N; j++)
{
right *= parsing[j];
}
//cout << left << right << endl;
// 종료조건
if (left == right)
{
cout << "YES";
return 0;
}
}
cout << "NO";
return 0;
}
}
'Programming > 알고리즘' 카테고리의 다른 글
| [백준 N과 M(1)] 백트래킹 문제 (0) | 2020.02.29 |
|---|---|
| 백준 토마토문제 (0) | 2020.02.11 |
| 백준 구슬탈출2 (0) | 2020.02.11 |
| 백준 나무자르기 (0) | 2020.02.11 |
| 백준 공유기설치 (0) | 2020.02.11 |