본문으로 바로가기

[백준 2577] 숫자의 개수

category 알고리즘/백준 알고리즘 2018. 5. 6. 18:27
글에 개요

백준 알고리즘 2577번 "숫자의 개수" 문제입니다.
백준 알고리즘 분류에서 '구현'에 있는 문제입니다. 알고리즘 시험을 대비하면서 알고리즘의 개념이 필요한 문제 뿐만 아니라 구현하는 문제도 대비해야겠다는 생각으로 꾸준히 풀어볼 생각입니다.
사람들이 가장 많이 제출한 문제 순서대로 쭉 풀어보겠습니다. 너무 쉬운 문제는 빼고 조금이라도 아이디어가 있는 문제만 골라서 풀어보겠습니다. 여러분도 같이 풀어보면 좋겠네요.


[백준 2577] 숫자의 개수https://www.acmicpc.net/problem/2577

핵심 내용
  1. 크기가 10인 배열을 만들고 해당 인덱스에 해당되면 +1씩 해주었습니다.
  2. 아스키코드를 활용하는 문제를 해결하는 방식으로 해결하였습니다.
  3. 16번째 줄만 중점적으로 보시면 될 것 같습니다.


해결 방법
  1. 0~9까지 갯수를 세기 위하여 크기가 10인 배열 cnt를 선언합니다.
  2. A*B*C의 값을 String으로 변환해줍니다.
  3. 변환된 곱셈 결과값을 s.charAt(i) - '0'을 해주어 해당 index에 +1씩을 더해줍니다.
해결한 코드



백준 참고 내용

시간 제한메모리 제한제출정답맞은 사람정답 비율
1 초128 MB149739639804265.081%

문제

세 개의 자연수 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보다 작은 자연수이다.

출력

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

예제 입력 1 

150
266
427

예제 출력 1 

3
1
0
2
0
0
0
2
0
0


'알고리즘 > 백준 알고리즘' 카테고리의 다른 글

[백준 10798] 세로읽기  (0) 2018.05.07
[백준 2839] 설탕 배달  (0) 2018.05.06
[백준 1922] 네트워크 연결  (0) 2018.05.02
[백준 1197] 최소 스패닝 트리  (1) 2018.05.01
[백준 2606] 바이러스  (0) 2018.04.25

댓글을 달아 주세요