Java
[Java] BOJ 8958번 관련 String -> char 자료형 변환
Rachel_
2022. 1. 7. 11:54
1. charAt() 사용하기.
총 출력될 행의 갯수 : 5
OOXXOXXOOO
OOXXOOXXOO
OXOXOXOXOXOXOX
OOOOOOOOOO
OOOOXOOOOXOOOOX
각 행마다 O와 X가 섞인 String 타입 데이터를 받을 예정.
여기서 O와 X를 분리해야 한다. 따라서 String 타입의 데이터를 char 로 하나씩 쪼개야 한다.
BufferReader br = new BufferReader(new StreamReader(System.in));
int N = Integer.parseInt(br.readLine()); // N는 출력될 행의 갯수이자 만들 string 배열의 인덱스값
String[] arr = new String[N] // arr이라는 배열이 차지하는 공간을 N개만큼 할당한다.
for(int i = 0; i<N; i++){
arr[i] = br.readLing(); // N 다음에 입력되는 OXXOXOXOO 와 같은 하나의 행이 arr[0] 의 데이터로 들어간다.
}
for(int i = 0; i<N; i++){
for(int j = 0; j<arr[i].length; j++){
System.out.printf("%3c", arr[i].charAt(j));
//arr[0~4]의 charAt(0~i.length)까지의 값, 즉 OXXOXOXOO 의 총 갯수가 한개씩 출력됨
}
}
}
혹은 ToCharArray()를 이용해 처음부터 char형으로 쪼개 넣을 수도 있다.
/* 5
OOXXOXXOOO
OOXXOOXXOO
OXOXOXOXOXOXOX
OOOOOOOOOO
OOOOXOOOOXOOOOX
와 같은 input 데이터가 있다면;
*/
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Num8958_2 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
String[] arr = new String[N];
for(int i = 0; i < N; i++){
arr[i] = br.readLine();
}
for(int i = 0; i < N; i++){
char[] arrCh = new char[arr[i].length()];
int cnt = 0;
int sum = 0;
for(int j = 0; j<arr[i].length(); j++){
arrCh = arr[i].toCharArray();
if(arrCh[j] == 'O'){
cnt++;
} else {
cnt=0;
}
sum += cnt;
}
System.out.println(sum);
}
}
}