https://st-lab.tistory.com/50?category=833672
[백준] 8958번 : OX퀴즈 - JAVA [자바]
https://www.acmicpc.net/problem/8958 8958번: OX퀴즈 문제 "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속..
st-lab.tistory.com
*해당 포스팅은 상단에 링크된 포스팅을 바탕으로 개인 공부 목적을 위해 작성되었으므로 자세한 내용은 위 링크를 확인해 주시기 바랍니다.
배열을 이용한 코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int test_case = Integer.parseInt(br.readLine());
String arr[] = new String[test_case];
StringBuilder sb = new StringBuilder();
for (int i = 0; i < test_case; i++) {
arr[i] = br.readLine();
}
br.close();
for (int i = 0; i < test_case; i++) {
int cnt = 0;
int sum = 0;
for (int j = 0; j < arr[i].length(); j++) {
if(arr[i].charAt(j) == 'O') {
cnt++;
sum += cnt;
} else {
cnt = 0;
}
}
sb.append(sum).append("\n");
}
System.out.println(sb);
}
}
→ 사용자가 입력한 정수 값만큼 반복하며 OX문을 배열에 차례대로 넣어준다.
→ 문자열 배열에 담긴 OX문들을 차례대로 꺼내어 문자 하나 하나(arr[i].charAt[j])를 비교하며 계산한다.
getBytes()메소드와 for-each문을 이용한 코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int test_case = Integer.parseInt(br.readLine());
StringBuilder sb = new StringBuilder();
for(int i = 0; i < test_case; i++) {
int cnt = 0;
int sum = 0;
for (byte value : br.readLine().getBytes()) {
if(value == 'O') {
cnt++;
sum += cnt;
} else {
cnt = 0;
}
}
sb.append(sum + "\n");
}
br.close();
System.out.println(sb);
}
}
String.getBytes() 메소드
문자열을 Byte array로 변환해주는 메소드
위 메소드와 for-each문을 활용해서 문자 하나 하나를 if문으로 바로 검증한다.
'Computer Science > Algorithm' 카테고리의 다른 글
[JAVA] 한수 (0) | 2022.03.09 |
---|---|
[JAVA] 셀프 넘버 (0) | 2022.03.09 |
[JAVA] 나머지 (0) | 2022.03.08 |
[JAVA] 숫자의 개수 (0) | 2022.03.06 |
[JAVA] 최소, 최대 (0) | 2022.03.04 |