본문 바로가기
프로그래밍/백준 문제 풀이(자바)

백준 자바 숫자의 개수 답/해설(2577번 문제)

by 리드민 2021. 10. 23.
반응형

[1] 백준 카테고리
단계별로 풀어보기

1차원 배열

3단계 2577번 문제

숫자의 개수

링크

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

 

2577번: 숫자의 개수

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

www.acmicpc.net


[2] 문제
1. 입력
세 개의 자연수 A, B, C가 주어질 때 A × B × C를 계산한 결과에 0부터 9까지 각각의 숫자가 몇 번씩 쓰였는지를 구하는 프로그램을 작성하시오.
예를 들어 A = 150, B = 266, C = 427 이라면 A × B × C = 150 × 266 × 427 = 17037300 이 되고, 계산한 결과 17037300 에는 0이 3번, 1이 1번, 3이 2번, 7이 2번 쓰였다.2. 출력

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

4.예제 출력 1
첫째 줄에는 A × B × C의 결과에 0 이 몇 번 쓰였는지 출력한다. 마찬가지로 둘째 줄부터 열 번째 줄까지 A × B × C의 결과에 1부터 9까지의 숫자가 각각 몇 번 쓰였는지 차례로 한 줄에 하나씩 출력한다.

 

5. 예제 입력 1

150

266

427

 

6. 예제 출력 1

3

1

0

2

0

0

0

2

0

0

 

[3] 정답

1. 정답 해설 포함

import java.util.Scanner;
//Scanner 사용을 위해서 java.util.Scanner 클래스를 import
public class Main{
// 접근제어자 public으로 Main class를 선언
	public static void main(String args[]) {
	/* 접근제어자 public, 메모리에 상주하게, 반환값이 없이
	main 함수를 선언 */
		Scanner sc = new Scanner(System.in);
		// Scanner 객체 sc 선언
		int a = sc.nextInt();
		// 변수 a를 선언하고 값을 입력받아 변수 a에 저장
		int b = sc.nextInt();
		// 변수 b를 선언하고 값을 입력받아 변수 b에 저장
		int c = sc.nextInt();
		// 변수 c를 선언하고 값을 입력받아 변수 c에 저장
		sc.close();
		// 객체 sc 사용을 종료
      
		int[] counts = new int[10];
		// 배열 counts를 선언 범위는 count[0]~count[9]이다.
		int t = a * b * c;
		// a * b * c를 연산하고 그 값을 int형 변수 t에 저장
   		   while (t > 0) {
		// while문 선언 t>0 일때 내부의 코드를 반복
			counts[t % 10]++;
			// count[t%10]에 1를 더한다
			t /= 10;
			// t나누기 10 값을 변수 t에 저장
		}
		for (int i=0; i < counts.length; ++i) {
		// for 문 선언
			System.out.println(counts[i]);
			// counts[i]를 출력하고 개행
		}
	}
}


2. 정답 해설 미포함

import java.util.Scanner;
public class Main{
	public static void main(String args[]) {
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		int b = sc.nextInt();
		int c = sc.nextInt();
		sc.close();
      
		int[] counts = new int[10];
		int t = a * b * c;
		while (t > 0) {
			counts[t % 10]++;
			t /= 10;
		}
		for (int i=0; i < counts.length; ++i) {
			System.out.println(counts[i]);
		}
	}
}

 

반응형