한 걸음 두 걸음

baekjoon 1475 방번호 ] 문자열처리 / 수학(Math.log/ Math.pow) 본문

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);
    }
}


반응형