일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 페이코 추천인
- php 프로그래밍 입문 솔루션
- 배열
- php 프로그래밍
- php 프로그래밍 입문 3판
- php 프로그래밍 입문 연습문제
- php 프로그래밍 입문
- programmers
- php
- C
- 한정 분기
- 플러터
- php 프로그래밍 입문 문제풀이
- SWEA
- spring
- 자바
- 페이코 친구코드
- 페이코 초대코드
- 플러터 개발환경 설정
- JAVA SPRING
- 페이코 추천인코드
- 파이썬
- Flutter
- C언어
- 자바 스프링
- Java
- 최단 경로
- 백준
- 스프링
- php 프로그래밍 입문 예제
Archives
- Today
- Total
11-07 11:40
ImJay
[C언어] 백준 2577번 : 숫자의 개수 본문
반응형
백준 2577번 : 숫자의 개수
- 사용언어 : C언어
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. 코드
#include <stdio.h>
int main(void) {
int input, sum=1;
int num[10];
for(int i=0; i<10; i++) num[i] = 0; // 배열 값 0으로 지정
for(int i=0; i<3; i++) { // A*B*C 구하기
scanf("%d", &input);
sum *= input;
}
for(int i=0; sum > 0; i++) { // 각 숫자가 몇 번 쓰였는지 구하기
input = sum % 10;
num[input] += 1;
sum /= 10;
}
for(int i=0; i<10; i++) printf("%d\n", num[i]);
}
3. 풀이
이제까지 사용했던 부분들을 종합하여 푸는 문제였습니다.
그럼에도 불구하고 많은 부분에서 막히고, 틀렸는데,
이 문제의 정답률이 61.597%, 심지어 올림피아드 초등부 2번 문제라는 것에서
전공생인 저의 방향성에 대해 다시 한번 의구심을 품게되네요.
괜히 씁쓸하고 좌절감만 들었습니다..
이 코드의 포인트는
input = sum % 10;
num[input] += 1;
각 숫자가 몇 회 사용되었는지 세는 방법입니다.
반응형
'백준 - C, C++ > 05. 1차원 배열' 카테고리의 다른 글
[C언어] 백준 8958번 : OX퀴즈 (0) | 2020.09.30 |
---|---|
[C언어] 백준 1546번 : 평균 (0) | 2020.09.29 |
[C언어] 백준 3052번 : 나머지 (6) | 2020.09.28 |
[C언어] 백준 2562번 : 최댓값 (0) | 2020.09.24 |
[C언어] 백준 10818번 : 최소, 최대 (2) | 2020.09.24 |
Comments