백준 알고리즘/1차원 배열

[JAVA 자바] 백준 2577번 : 숫자의 개수

Sun720 2022. 5. 25. 22:02

▶ 문제

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

 

2577번: 숫자의 개수

첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 크거나 같고, 1,000보다 작은 자연수이다.

www.acmicpc.net

 설명

입력한 값들을 곱한 결과에서 0~9 중 쓰인 숫자를 카운트하는 문제이다.

입력 받을 때 문자열이었다면 정수형으로 형변환을 한 번 해준 뒤,

곱셈 연산을 한 후 정수형으로 된 결과값을 다시 문자열로 변환하여 charAt( )로 처리할 수 있다.

 

문제 풀이

🌱 풀이1.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {

	public static void main(String[] args) throws NumberFormatException, IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int a = Integer.parseInt(br.readLine());
		int b = Integer.parseInt(br.readLine());
		int c = Integer.parseInt(br.readLine());
		
		int multiplyResult = a*b*c;
		
		String aStr = Integer.toString(multiplyResult);
		
		for(int i=0;i<10; i++) {
			int count=0;
			for(int j=0; j<aStr.length(); j++) {
				if((aStr.charAt(j)-'0')==i) {
					count++;
				}
			}
			System.out.println(count);
		}
	}
}

  if((aStr.charAt(j)-'0')==i)  charAt( ) 는 아스키코드의 문자/코드를 반환한다. 문자열로 된 숫자들을 한 자리씩 정수형 숫자로 되돌려 받으려면 charAt('숫자')- '0'을 빼주어야 한다.

 

 

본연의 숫자를 반환하면 0부터 9까지 비교하여 일치할 때마다  카운트를 하고 바로 출력하도록 한다.

 

 

 

 

Log

728x90
반응형