자바 백준 1356번
브론즈 1
https://www.acmicpc.net/problem/1356
1356번: 유진수
첫째 줄에 수 N이 주어진다. 이 수는 2,147,483,647보다 작거나 같은 자연수이다.
www.acmicpc.net
문제 보기

분류: 수학, 구현, 문자열, 브루트포스, 사칙연산
코드 보기
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); // 입력 받은 숫자를 변수에 저장 String input = sc.next(); // 입력된 숫자가 유진수인지 판별하여 결과 출력 if (isEugeneNumber(input)) { System.out.println("YES"); } else { System.out.println("NO"); } } // 유진수인지를 판별하는 함수 public static boolean isEugeneNumber(String num) { int len = num.length(); // 숫자를 나눠가며 유진수인지 확인 for (int i = 1; i < len; i++) { // 숫자를 두 부분으로 나눔 String firstPart = num.substring(0, i); String secondPart = num.substring(i); // 두 부분의 자릿수 곱이 같으면 유진수이므로 true 반환 if (calculateProduct(firstPart) == calculateProduct(secondPart)) { return true; } } // 모든 경우를 확인했지만 유진수가 아닌 경우 false 반환 return false; } // 숫자의 각 자릿수를 곱하여 결과 반환하는 함수 public static long calculateProduct(String num) { long product = 1; // 각 자릿수를 곱함 for (int i = 0; i < num.length(); i++) { int digit = Character.getNumericValue(num.charAt(i)); product *= digit; } // 곱한 결과 반환 return product; } }
'공부하기 > 백준' 카테고리의 다른 글
[Java] 백준 풀기 13410 - 거꾸로 구구단 (0) | 2023.12.07 |
---|---|
[Java] 백준 풀기 1755 - 숫자놀이 (4) | 2023.12.06 |
[Java] 백준 풀기 5354 - J박스 (0) | 2023.12.04 |
[Java] 백준 풀기 6679 - 싱기한 네자리 숫자 (0) | 2023.12.03 |
[Java] 백준 풀기 1408 - 24 (0) | 2023.12.02 |