일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 자료구조
- blender
- 브루트포스 알고리즘
- 그래픽 디자인
- 스택
- 이진 탐색
- 카니발대학교 공대강국
- 큐
- 시작
- i자형 인재
- 영어
- 택시 기하학
- 닌텐도 스위치 2
- 그리디 알고리즘
- 2025 대한민국 채용박람회
- 잴다의 전설 티어스 오브 더 킹덤
- unity engine
- VRoid Studio
- windows 12
- vrm posing desktop
- URP
- 병역일터
- c#
- Probuilder
- 배열 리스트
- 다이나믹프로그래밍
- 마인크래프트
- 빅오 표기법
- 라자냐
- 코딩테스트
- Today
- Total
WalkerJei's Lifelog
백준알고리즘 2577번 숫자의 개수 C# 본문
세부 정보
- 사이트: 백준알고리즘
- 번호: 2577
- 문제명: 숫자의 개수
- 언어: C#
- 분류: 수학, 구현, 사칙연산
- 비고:
문제
세 개의 자연수 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까지의 숫자가 각각 몇 번 쓰였는지 차례로 한 줄에 하나씩 출력한다.
풀이
Replace()를 활용하면 문자열 내 특정한 문자를 원하는 문자로 바꿀 수 있다.
배열이 아닌 문자열 변수.Length의 값은 문자열 내 문자 개수와 동일하다.
예: string name = "george"일 때 name.Length의 값은 6이다.
// 정수 a, b, c를 입력한다.
int a = Convert.ToInt32(Console.ReadLine());
int b = Convert.ToInt32(Console.ReadLine());
int c = Convert.ToInt32(Console.ReadLine());
// 정수 a, b, c의 곱을 문자열로 바꿔 저장한다.
string mul = Convert.ToString(a * b * c);
// 1. mul 변수에 저장된 문자열에서 특정 문자를 공백으로 대체한다.
// 2. 원래 mul 변수의 길이에서 특정 문자가 공백으로 대체된 문자열 변수의 길이의 차를 구한다.
for (int i = 0; i <= 9; i++)
Console.WriteLine(mul.Length - mul.Replace(i.ToString(),"").Length);
후기
처음 봤을 때 이 문제는 이해가 잘 되지 않아서 밑 사진과 같이 검산 작업을 했다.
검산 작업을 한 후 왜 이러한 값이 나왔는 지 이해할 수 있었다. Replace()를 이런 용도로 활용할 수 있었다. 사실 이 문제를 푸는 과정에서 지난번에 사용했던 IndexOf로 시도해 보다가 이거는 어떤 순서대로 나왔는지 찾는 것이라서 효과가 없었다. 이제는 다 푼 문제가 좀 쌓였다 싶었다면 그동안 푼 문제를 다시 보고 어떻게 푸는 지를 잊어버리지 않게 해야 한다.
'소프트웨어 개발 > 코딩테스트(기성 문제)' 카테고리의 다른 글
백준알고리즘 10871번 X보다 작은 수 C# (0) | 2025.03.12 |
---|---|
백준알고리즘 8958번 OX퀴즈 C# (1) | 2025.03.12 |
백준알고리즘 10807번 개수 세기 C# (0) | 2025.03.11 |
백준알고리즘 10809번 알파벳 찾기 C# (0) | 2025.03.10 |
백준알고리즘 1094번 막대기 C# (0) | 2025.03.09 |