코딩 테스트/백준
[백준] 1526번: 가장 큰 금민수 (브론즈1, 수학, 구현, 브루트포스 알고리즘, JAVA)
Nirsa
2024. 1. 27. 10:01
반응형
문제 링크 : https://www.acmicpc.net/problem/1526
1526번: 가장 큰 금민수 (브론즈1, 수학, 구현, 브루트포스 알고리즘, JAVA)
수를 하나 입력받고, 4와 7로만 이루어진 숫자의 최댓값을 구하는 문제입니다. 전체 코드는 아래와 같은데, 값을 입력받은 후 해당 숫자를 char 배열로 변환합니다.
이후 각각의 char 배열에 7또는 4가 있는지 확인하고 count를 증가시키게 되는데, count가 char 배열의 길이와 같을 경우 모든 값이 4또는 7로 이루어진 문자이기 때문에 출력 후 종료합니다.
만약, 같지 않다면 입력받은 값(N)에서 1씩 감소시키며 원하는 값을 찾을때까지 반복합니다.
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 N = Integer.parseInt(br.readLine());
while(true) {
char[] ch = Integer.toString(N).toCharArray();
int count = 0;
for(int i=0; i<ch.length; i++) {
if(ch[i] == '7') {
count++;
} else if(ch[i] == '4') {
count++;
}
}
if(count == ch.length) {
System.out.println(N);
break;
}
N--;
}
}
}
반응형