[JAVA][정올 1430] 숫자의 개수
- 알고리즘
- 2021. 1. 8.
SHORTCUT
반응형
사이트명 | 정올 |
문제 링크 | jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=706&sca=2030 |
주요 알고리즘 | #수학 |
사용 언어 | Java |
설명이 장황합니다.. 도움되는 것만 파악하세요 :-) |
1. 문제
2. 입력 / 출력
3. 풀이
3-1. 생각 노트
A, B, C의 곱을 String으로 변환한다.
해당 문자열을 toCharArray()를 통해 char배열에 넣는다.
하나씩 값을 보며 해당 정답 변수의 개수를 카운팅한다.
끝.
🌟 중요
1. String과 int 서로간의 형변환
String -> int | Integer.parseInt(문자열); |
int -> String | Integer.toString(숫자); |
char -> int | char 문자 - '0'; |
중요한 건, 모두 Integer에서 제공한다는 것!
2. toCharArray();
3. char - '0' 을 하면, 숫자로 인식!
3-2. 변수명
type | 변수명 | 설명 |
3-3. 코드 보기
package jungol;
import java.util.Scanner;
public class JO1430_숫자의개수 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int A = sc.nextInt();
int B = sc.nextInt();
int C = sc.nextInt();
String result = Integer.toString(A * B * C);
char[] text = result.toCharArray();
int[] answer = new int[10];
//세어야 하는 숫자와 인덱스가 일치하므로, 인덱스에 따라서 바로바로 증가
for (int i = 0; i < text.length; i++) {
answer[text[i]-'0']++;
}
for (int i = 0; i < answer.length; i++) {
System.out.println(answer[i]);
}
}
}
switch (text[i]) {
case '0':
answer[0]++;
break;
case '1':
answer[1]++;
break;
case '2':
answer[2]++;
break;
case '3':
answer[3]++;
break;
case '4':
answer[4]++;
break;
case '5':
answer[5]++;
break;
case '6':
answer[6]++;
break;
case '7':
answer[7]++;
break;
case '8':
answer[8]++;
break;
case '9':
answer[9]++;
break;
}
3-4. 마무리
맨 처음엔 아무 생각없이 0~9 를 전부 조건문으로 걸러서 카운팅으로 풀었다. 그래도 스위치 써서 편하게 했는데 찝찝..
그러다가 다른 사람 풀이보고 다시 깨달았다.
세는 숫자와 인덱스가 일치하기 때문에, 인덱스에 해당하는 배열 값만 증가시켜도 된다..
몹시 쉬운 문제였으나, 이 문제를 통해 내가 얼마나 알고리즘으로 부터 멀어졌는지 깨닫게 되었다..
쉬운거 부터 다시 차근히 쌓자!!
반응형