자바 백준 21734번
브론즈 2
https://www.acmicpc.net/problem/21734
문제 보기
분류: 구현, 문자열
문제 풀기
이 문제를 푸는데 toCharArray() 함수를 사용하면서 형변환이 여러번 이루어졌다.
입력된 String 문자열을 toCharArray() 로 분리하여 저장한다.
각 알파벳이 char 타입으로 분리저장된 array 에서 10진수 ASCII 코드로 변환하고, 이 10진수의 각 자리숫자를 더하기 위해 String 타입으로 변환하고 toCharArray 로 분리 저장한다.
각 자릿수가 분리 저장된 array 에서 각 char 타입 숫자를 빼내어 " - '0' " 방법을 사용하여 int 형으로 변환후 tempSum 에 누적 덧셈을 저장한다.
각 알파벳에 대해 for each 를 돌리면서 빼낸 알파벳과 계산된 tempSum을 통해서 문제에서 제시한 형태로 출력한다.
코드 보기
import java.util.Scanner;
public class Main {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
char[] s = sc.next().toCharArray(); // 입력받은 String 타입의 문자를 char array 로 바꿔 저장.
for (char c : s) {
// System.out.println((c - 0)+""); // TEXT PRINT
char[] charDec = ((c - 0)+"").toCharArray(); // char 로 저장된 각 문자를 ASCII Dec 로 바꾸고, 변경된 10진수를 String 으로 변환후, 각 자리를 char array 에 저장.
int tempSum = 0; // 10진수의 각 자리를 더하기 위해 지정한 변수.
for (char cDec : charDec) { // 10진수를 나눠 저장한 array 에서 각 value 를 하나씩 꺼냄.
tempSum += cDec - '0'; // 각 char value 를
// System.out.println(cDec - '0').getClass().getName(); // TEXT PRINT
// printType(cDec - '0'); // TEXT PRINT TO CHECK TYPE
}
// System.out.println(tempSum); // TEXT PRINT
System.out.println((c + "").repeat(tempSum)); // 하나씩 빼낸 알파벳과 ASCII Dec 합 결과를 통해 결과 출력.
}
}
// 모르는 변수의 타입을 확인하기 위한 함수.
public static void printType(Object unknownVariable) {
if (unknownVariable instanceof String) {
System.out.println("The unknown variable is a String");
} else if (unknownVariable instanceof Character) {
System.out.println("The unknown variable is a char");
} else if (unknownVariable instanceof Integer) {
System.out.println("The unknown variable is an int");
} else {
System.out.println("The type of the unknown variable is unknown");
}
}
}
추가 하기
변수 String, char, int 에 대해 타입을 확인하기 위한 함수.
// 모르는 변수의 타입을 확인하기 위한 함수.
public static void printType(Object unknownVariable) {
if (unknownVariable instanceof String) {
System.out.println("The unknown variable is a String");
} else if (unknownVariable instanceof Character) {
System.out.println("The unknown variable is a char");
} else if (unknownVariable instanceof Integer) {
System.out.println("The unknown variable is an int");
} else {
System.out.println("The type of the unknown variable is unknown");
}
}
'공부하기 > 백준' 카테고리의 다른 글
[Java] 백준 풀기 10698 - Ahmed Aly (0) | 2023.04.10 |
---|---|
[Java] 백준 풀기 23810 - 골뱅이 찍기 뒤집힌 ㅋ (0) | 2023.04.09 |
[Java] 백준 풀기 23794 - 골뱅이 찍기 정사각형 (0) | 2023.04.07 |
[Java] 백준 풀기 27889 - 특별한 학교 이름 (0) | 2023.04.06 |
[Java] 백준 풀기 15814 - 야바위 대장 (0) | 2023.04.05 |