자바 백준 1526번
브론즈 1
https://www.acmicpc.net/problem/1526
문제 보기
분류: 수학, 구현, 브루트포스 알고리즘
문제 풀기
주어진 숫자 N부터 시작하여 하나씩 감소시켜 가며 금민수인지 확인한다.
금민수 확인은 1의 자릿수가 4 또는 7인지 확인하여 맞다면 10으로 나눈 몫, 나머지 관계로 다음 자릿수를 확인하고 반복한다.
함수 안의 결과에 따라 true, false를 반환하여 결과를 출력한다.
코드 보기
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 입력값 N
int N = sc.nextInt();
// N부터 시작해서 가장 큰 금민수를 찾을 때까지 반복
while (true) {
// isGMNumber 함수를 사용하여 금민수인지 확인
if (isGMNumber(N)) {
// 찾은 금민수를 출력하고 반복문을 종료
System.out.println(N);
break;
}
// N을 감소시켜 다음 수를 확인
N--;
}
}
// 주어진 수가 금민수인지 확인하는 함수
public static boolean isGMNumber(int num) {
// 주어진 수를 자릿수별로 확인
while (num > 0) {
int digit = num % 10;
// 자릿수가 4 또는 7이 아니면 금민수가 아님
if (digit != 4 && digit != 7) {
return false;
}
// 다음 자릿수를 확인하기 위해 나누기 연산을 수행
num /= 10;
}
// 모든 자릿수가 4 또는 7이면 금민수
return true;
}
}
'공부하기 > 백준' 카테고리의 다른 글
[Java] 백준 풀기 10990 - 별 찍기 15 (0) | 2023.09.23 |
---|---|
[Java] 백준 풀기 17219 - 비밀번호 찾기 (0) | 2023.09.21 |
[Java] 백준 풀기 1977 - 완전 제곱수 (0) | 2023.09.19 |
[Java] 백준 풀기 20115 - 에너지 드링크 (0) | 2023.09.13 |
[Java] 백준 풀기 11256 - 사탕 (0) | 2023.09.12 |