본문 바로가기

Programming/알고리즘

백준 유진수

반응형

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