정리하고기록하자

백준 (JAVA) - 숫자의 개수 (2577) 본문

백준 - 알고리즘

백준 (JAVA) - 숫자의 개수 (2577)

정리하고기록하자 2021. 11. 17. 23:18
반응형

백준 - 알고리즘 1차원배열 숫자의 개수(2577) 문제

 

문제 : 세 개의 자연수 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번 쓰였다.

 

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

 

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();
		int sum = a * b * c; // a * b * c 값을 변수 sum에 저장
	}
}

처음 입력해야 할 값들을 선언해준다.

입력한 세개의 값을 곱해야 하기 때문에

변수를 선언 해준다.


여기서 부터 구글링

int[] counts = new int[10]; // 배열 counts를 선언 범위는 count[0]~count[9]이다.

while (sum > 0) { // while문 선언 sum>0 일때 내부의 코드를 반복
	counts[sum % 10]++; // count[sum%10]에 1를 더한다
	sum /= 10; // sum나누기 10 값을 변수 sum에 저장
}

while 조건을 통해 곱한값 보다 클 경우 

counts 배열에 곱한 sum 에 10으로 나눈 나머지 값에 1을 더한다.


 

배열안에 담긴 값을 반복문을 통해 출력한다

for (int i=0; i < counts.length; i++) { // for 문 선언
	System.out.println(counts[i]);
}

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();
		int sum = a * b * c; // a * b * c 값을 변수 sum에 저장
        
		int[] counts = new int[10]; // 배열 counts를 선언 범위는 count[0]~count[9]이다.

		while (sum > 0) { // while문 선언 sum>0 일때 내부의 코드를 반복
			counts[sum % 10]++; // count[sum%10]에 1를 더한다
			sum /= 10; // sum나누기 10 값을 변수 sum에 저장	
		}
        
		for (int i=0; i < counts.length; i++) { // for 문 선언
			System.out.println(counts[i]);
		}
	}
}

 

반응형