반응형
[ Contents ]
1. 문제 (링크 참조)
2577번: 숫자의 개수
첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 크거나 같고, 1,000보다 작은 자연수이다.
www.acmicpc.net
2. 문제 풀이
세 수를 곱한 결과의 각 자릿수 숫자를 세는 문제입니다. 각 자릿수마다 숫자가 몇 번씩 쓰였는지를 구해야 합니다.
2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학
[Algorithm] 단골 1번 문제, 구현 / 수학
1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문만 사용하여 해결할
star7sss.tistory.com
10으로 나누며 나머지를 세면 됩니다. 간단한 수학문제입니다.
3. 코드
A = int(input())
B = int(input())
C = int(input())
res = A*B*C
num = [0]*10
while(res != 0):
tmp = res%10
num[tmp] += 1
res = res//10
for i in num:
print(i)
[0]*10 = [0,0,0,0,0,0,0,0,0,0] 으로 리스트가 초기화됩니다. range 등의 리스트 초기화 함수를 쓰는 것보다 간편합니다.
숫자의 개수는 1의 자리부터 하나씩 셉니다. 그 후 // 연산자를 이용해서 10으로 나눈 몫만 남겨주면, 1의 자리가 없어집니다.
ex) 123 % 10 = 3 (나머지), 123 // 10 = 12 (몫)
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 number = a*b*c;
int[] num = new int[10];
while(number != 0) {
num[number%10]++;
number /= 10;
}
for(int i = 0; i < 10; i++) {
System.out.println(num[i]);
}
sc.close();
}
}
반응형
'Algorithm' 카테고리의 다른 글
[수학/DP] 백준 2839 설탕 배달 - Python, Java (0) | 2022.01.25 |
---|---|
[구현/수학] 백준 1546 평균 - Python, Java (0) | 2022.01.24 |
[구현/수학] 백준 1110 더하기 사이클 - Python, Java (0) | 2022.01.22 |
[구현/수학] 백준 2884 알람 시계 - Python, Java (0) | 2022.01.21 |
[구현/수학] 백준 2576 홀수 - Python (0) | 2022.01.20 |
댓글