[JAVA][정올 1430] 숫자의 개수

SHORTCUT

    반응형
    사이트명 정올
    문제 링크 jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=706&sca=2030
    주요 알고리즘 #수학
    사용 언어 Java
    설명이 장황합니다.. 도움되는 것만 파악하세요 :-)

    1. 문제

     

    2. 입력 / 출력


    3. 풀이

    3-1. 생각 노트

    A, B, C의 곱을 String으로 변환한다.

    해당 문자열을 toCharArray()를 통해 char배열에 넣는다.

    하나씩 값을 보며 해당 정답 변수의 개수를 카운팅한다.

    끝.

     

     

    🌟 중요

    1. String과 int 서로간의 형변환

    String -> int Integer.parseInt(문자열);
     int -> String Integer.toString(숫자);
    char -> int char 문자 - '0';

    중요한 건, 모두 Integer에서 제공한다는 것!

     

    2. toCharArray();

    3. char - '0' 을 하면, 숫자로 인식!

     

     

    3-2. 변수명

    type 변수명 설명
         
         

     

    3-3. 코드 보기

    package jungol;
    
    import java.util.Scanner;
    
    public class JO1430_숫자의개수 {
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    		
    		int A = sc.nextInt();
    		int B = sc.nextInt();
    		int C = sc.nextInt();
    		
    		String result = Integer.toString(A * B * C);
    		char[] text = result.toCharArray();
    		
    		int[] answer = new int[10];
    		
    		//세어야 하는 숫자와 인덱스가 일치하므로, 인덱스에 따라서 바로바로 증가
    		for (int i = 0; i < text.length; i++) {
    			answer[text[i]-'0']++;
    		}
    		
    		for (int i = 0; i < answer.length; i++) {
    			System.out.println(answer[i]);
    		}
    	}
    
    }
    switch (text[i]) {
    case '0':
    	answer[0]++;
    	break;
    case '1':
    	answer[1]++;
    	break;
    case '2':
    	answer[2]++;
    	break;
    case '3':
    	answer[3]++;
    	break;
    case '4':
    	answer[4]++;
    	break;
    case '5':
    	answer[5]++;
    	break;
    case '6':
    	answer[6]++;
    	break;
    case '7':
    	answer[7]++;
    	break;
    case '8':
    	answer[8]++;
    	break;
    case '9':
    	answer[9]++;
    	break;
    }

     

    3-4. 마무리

    맨 처음엔 아무 생각없이 0~9 를 전부 조건문으로 걸러서 카운팅으로 풀었다. 그래도 스위치 써서 편하게 했는데 찝찝..

    그러다가 다른 사람 풀이보고 다시 깨달았다.

     

    세는 숫자와 인덱스가 일치하기 때문에, 인덱스에 해당하는 배열 값만 증가시켜도 된다..

     

    몹시 쉬운 문제였으나, 이 문제를 통해 내가 얼마나 알고리즘으로 부터 멀어졌는지 깨닫게 되었다..

    쉬운거 부터 다시 차근히 쌓자!!

    반응형

    댓글

    Designed by JB FACTORY