안녕하세요 저는 박민성입니다.
오늘부터 백준 문제를 꾸준히 풀어볼까 합니다.
수많은 백준 문제 중 알고리즘 분류에 수학, 구현 쪽을 많이 풀어볼까 합니다.
오늘은 백준 2577번 숫자의 개수를 풀어 보겠습니다.

이 문제를 보면
입력은 첫째 줄부터 셋째 줄까지 100보다 크거나 같고, 100보다 1,000보다 작은 자연수가 A, B, C 차례대로 입력을 받습니다.
출력은 A × B × C의 결과에 1부터 9까지의 숫자가 각각 몇 번 쓰였는지 차례로 한 줄에 하나씩 출력합니다.
일단은 A, B, C를 입력받아야 하니 Console.ReadLine으로 자료형 int로 A, B, C를 받습니다.

그리고 입력을 받았으니 세 값을 곱해서 x에 저장해줍니다.

문제를 보고 x를 자료형을 int에서 string으로 파싱 하여 이중 for문으로
0부터 9까지의 숫자가 각각 몇 번 쓰였는지 돌리는 것이 제일 먼저 머리속에서 떠올랐습니다.
그리하여

ToString() 메서드로 자료형을 int에서 string으로 파싱하고

이렇게 이중 for문을 써 보았습니다.
첫 번째 for문 i는 0부터 9까지 작동합니다.
두 번째 for문 j는 A, B, C를 곱한 x를 string으로 파싱 한 X의 전체 길이까지 작동합니다.
그리고 i값과 X의 자릿수를 낮춰가면서 비교하여 같다면 count값을 ++해주고
X의 전체 길이까지 했다면 count값을 출력해 주고 i가 1이 오르고 count값을 초기화해 주고 다시 비교합니다.
하지만 count값이 오르지 않았습니다. 오류는 안 뜨지만 if문을 본다면 i는 자료형이 int이고 X [j]는 자료형이 char이기 때문에 if 문이 true가 안 돼서 count값이 오르지 않았던 거였습니다.
그래서

i를 자료형을 string으로 파싱하고 I뒤에 대괄호를 쓰고 0을 써 줬습니다.
대괄호를 안 써준다면 I는 자료형이 string이고 X [j]는 자료형이 char이기 때문에 오류가 뜹니다.
비교가 안 되기 때문입니다.

이것이 전체 코드입니다. 이렇게 백준에 제출하였더니

정답이었습니다.
'알고리즘 C#' 카테고리의 다른 글
| 백준 1271번 엄청난 부자2 C#으로 문제 풀어보기 (0) | 2025.07.25 |
|---|---|
| 백준 10822번 더하기 C#으로 문제 풀어보기 (0) | 2025.07.24 |
| 백준 2839번 설탕 배달 C#으로 문제 풀어보기 (0) | 2025.07.23 |
| 백준 13241번 최소공배수 C#으로 문제 풀어보기 (1) | 2025.07.22 |
| 백준 1110번 더하기 사이클 C#으로 문제 풀어보기 (0) | 2025.07.21 |