문제 : https://www.acmicpc.net/problem/1356

 

1356번: 유진수

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

www.acmicpc.net

문제 요약 : 유진수 인지 아닌지 확인

입력 출력
1 ≤ N ≤ 2147483647
주어진 숫자가 유진수일 경우 YES 출력 아닐경우 NO 출력

JAVA

소스코드 : https://github.com/cbkpar/BOJ/blob/main/boj_1356.java

채점 번호 아이디 문제 번호 결과 메모리 시간 언어 코드 길이
31147069 cbkpar 1356 맞았습니다!! 14228KB 136ms Java 11 567B
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
	
	public static void main(String args[]) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int a,b,i,j,sz;
		String str = br.readLine();
		boolean chk = false;
		sz = str.length();
		for(i=0;i<sz-1;i++) {
			a = b = 1;
			for(j=0;j<=i;j++) a *= str.charAt(j)-'0';
			for(j=i+1;j<sz;j++) b *= str.charAt(j)-'0';
			if(a==b) {
				chk = true;
				break;
			}
		}
		System.out.println(chk?"YES":"NO");
	}
}

문자열을 두 부분으로 나누어 각 자릿수를 곱하여 비교한다.

+ Recent posts