반응형
https://www.acmicpc.net/problem/2577
- 문제 분석
- 세 개의 수를 곱해서 만든 수를 구성하는 숫자 (0 ~ 9)가 각각 몇 개씩 있는지 알아내야 한다.
- 입력란을 보면 곱하는 세 개의 수는 모두 세 자리 숫자임을 알 수 있고, 그 세 개의 수는 각 줄에 하나씩 입력을 받아야 하므로 간단하게 scanf 함수를 써서 입력받는다.
- 출력란을 보면 0 ~ 9를 순서대로 개행을 하여 곱셈해서 만든 수에 몇 개씩 존재하는지 나타내라 했다. 0 ~ 9를 순서대로 나타내는 것이 배열의 index 순서와 같다는 것에 착안하여, 배열의 0 index에는 0의 개수를, 1 index에는 1의 개수를 저장하는 방법으로 9번까지 개수를 저장하고 출력하면 된다.
- 배열의 index 개수 : 숫자 0 ~ 9의 개수를 저장해야 하므로 총 10개 필요.
- 각 숫자의 종류별 개수 구하기 : 사칙연산 중 나머지 활용
- 각 자릿수의 숫자가 무엇인 알아내기 -> 주어진 수를 10으로 나눈 나머지를 구하면 1의 자리 부터 구할 수 있다.
- 각 자리수의 숫자가 바로 배열의 index - 배열의 각 index에 개수 저장하기
- 숫자의 개수를 저장할 때 곱셈으로 만들어진 수의 안에 들어있는 수만 그에 맞는 index에 개수를 저장하게 되므로, 그 수 안에 없는 숫자의 개수는 0 이어야 하므로 배열을 선언할 때 0으로 반드시 초기화해야 한다.
- 각 자릿수의 숫자와 같은 배열의 index에 + 1을 연산해주면 된다.
- 세 개의 수를 곱해서 만든 수를 구성하는 숫자 (0 ~ 9)가 각각 몇 개씩 있는지 알아내야 한다.
- 필요한 개념
- 사칙연산 중 나눗셈의 몫과 나머지
- 배열
- 반복문
- 사칙연산 중 나눗셈의 몫과 나머지
- 내 풀이
반응형
'Algorithm > BaekJoon' 카테고리의 다른 글
[BaekJoon] 백준 14681번 사분면 고르기 - C 언어 (0) | 2021.06.18 |
---|---|
[BaekJoon] 백준 2753번 윤년 - C 언어 (0) | 2021.06.18 |
[BaekJoon] 백준 9498번 시험 성적 - C 언어 (0) | 2021.06.16 |
[BaekJoon] 백준 1330 두 수 비교하기 - C 언어 (0) | 2021.06.15 |
[BaekJoon] 백준 2588 곱셈 - C 언어 (0) | 2021.06.09 |