본문으로 바로가기
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

백준알고리즘


https://www.acmicpc.net/problem/1475


10으로 나누어서 숫자를 가져와도 되고, 스트링으로받아서 숫자로 변환해서 사용하는 것이 더 좋을 듯 하다.

첫 번째가 정답이지만 다른 코드랑 비교해보니 내 코드는 너무 별로라 다른 코드도 아래에 붙여 넣었다.

import java.util.Scanner; //https://www.acmicpc.net/problem/1475 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); String input = scan.nextLine().trim(); int codeArray[] = new int[10]; int count = 0; for(int i=0; i<input.length(); i++) { int value = input.charAt(i) - '0'; if(count == 0) { codeArray[value]++; count++; continue; } if(value==6 || value==9) { int six = codeArray[6]; int nine = codeArray[9]; if(codeArray[value] == count && six == nine) { codeArray[value]++; count++; continue; } if(six > nine) { codeArray[9]++; } else { codeArray[6]++; } } else { if(count > codeArray[value]) { codeArray[value]++; } else if(count == codeArray[value]) { count++; codeArray[value]++; } } } System.out.println(count); } }



import java.util.Scanner;

public class Main{
    public static void main(String[] args) {    
        Scanner scan = new Scanner(System.in);
        int[] inputArray = new int[10];
        int count = 0;
        int n = scan.nextInt();
        
        while(n != 0) {
            if(n%10 == 6 || n%10 == 9) {
                if(inputArray[6] < count) inputArray[6]++;
                else if(inputArray[9] < count) inputArray[9]++; 
                else {
                    count++;
                    inputArray[n%10]++;
                }
            }
            else {
                if(count == inputArray[n%10]) {
                    count++;
                    inputArray[n%10]++;
                }
                else inputArray[n%10]++;
            }
            n /= 10; 
        }
        
        System.out.println(count);
        scan.close();
    }   
}