CSE/baekjoon & swexpert
baekjoon 1475 방번호 ] 문자열처리 / 수학(Math.log/ Math.pow)
언제나 변함없이
2019. 3. 15. 16:45
반응형
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
double numLength = Math.log10(num);//num.length-1
int[] resultArr = new int[10];
//num값이 0일경우 예외처리
int result = 0;if(num == 0) result++;
//num>0일 때, 첫 번째 자리의 수부터 마지막 수까지 인덱스를 통해 배열에 넣어줌.
for(int i = (int)numLength ; i >= 0 ; i--) {
resultArr[num/(int)Math.pow(10, i)]++;
num = num - (num/(int)Math.pow(10, i))*(int)Math.pow(10, i);//했으면 맨 위의 수 없애기
}
int exc = resultArr[6] + resultArr[9];//6이랑9 특수하니까 따로 처리
//int연산했을 때 버려지는 소숫점 챙기기
if((double)exc/(double)2 > exc/2)resultArr[6] =(exc/2)+1;else resultArr[6] = exc/2; resultArr[9]=0;
//가장 큰 값 찾아서 결과값만들기
for(int i = 0; i <= 9; i++)
result = resultArr[i]<result?result:resultArr[i];
System.out.println(result);
}
}
반응형