[백준] 2577. 숫자의 개수

문제

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

풀이

세 정수를 입력 받아 그 세 정수의 곱을 구한 뒤, 결과값의 각 숫자들이 몇번이 나왔는지를 구하는 문제.
0~9까지 담을 배열을 먼저 만들어 준다. 그리고 index를 나타낼 변수 arr를 선언.
a, b, c를 곱한 값을 String으로 변환해야하는데 그 이유는 숫자 하나하나씩을 분리해서 count를 해야하기 때문!
String 타입으로 바뀐 곱셈값을 하나씩 가져와서 다시 숫자로 변환 후 count 배열에 개수를 +1 해준다.
만약에 1733이라는 곱셈값이 있다면 count[1] = 1, count[3] = 2, count[7] = 1 이라는 결과가 될 것.

📌 int형을 String으로 바꾸는 방법에는 여러가지가 있다.
1. 숫자 뒤에 큰 따옴표를 붙이는 것 → String num = (abc) + "";
2. toString()을 활용할 것 → String num = Integer.toString(abc);
3. valueOf()를 활용할 것 → String num = String.valueOf(abc);

코드

import java.util.Scanner;

public class Q_2577 {
	public static void main(String[] args) {
       		Scanner sc = new Scanner(System.in);
		
		int a = sc.nextInt();
		int b = sc.nextInt();
		int c = sc.nextInt();
		
		//0~9까지 담을 배열
		int[] count = new int[10];
		
		int arr = 0;
		String num = String.valueOf(a*b*c);
		
		for(int i = 0; i < num.length(); i++) {
			// 문자열을 int로 변환
			arr = (num.charAt(i) - '0');
			count[arr]++;
		}
        
		for(int k : count) {
			System.out.println(k);
		}
		sc.close();
	}
}

  • valueOf()와 toString()의 차이점
    Object가 null인 경우에 두 가지의 차이점을 확인할 수 있다.
    • toString()일 때 → NullPointException을 발생
    • valueIOf()일 때 → "null" 이라는 문자열을 출력

좋은 웹페이지 즐겨찾기