반응형
문제를 잘못 읽고 OX에서 O의 갯수를 세는 프로그램을 짰다.
그런데 그 마저도 완벽하지가 않다.
5
OOXXOXXOOO
OOXXOOXXOO
OXOXOXOXOXOXOX
OOOOOOOOOO
OOOOXOOOOXOOOOX
이러한 인풋을 넣었을 때, 처음이 영이 나오고, 나머지 4개가 옳게 나온다. 그러니까 처음에 집어넣은 5까지 arraylist화 시켜버린 셈인데, 아직 정확히 왜 그렇게 되는 지 알 수 없다.
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
String a = null;
for(int i=1;i<=N;i++) {
a = sc.nextLine();
ArrayList<String> OX = new ArrayList<String>(Arrays.asList(a.split("")));
int O_fqc = Collections.frequency(OX, "O");
System.out.println(O_fqc);
}
}
}
다른 사람들이 풀어놓은 좀 더 정석적인 방법을 풀어보기로 했다.
package bj8958;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 다음 입력될 숫자크기의 리스트를 만든다.
String arr[] = new String[in.nextInt()];
// 리스트 크기만큼 반복하되,
// 인덱스가 하나씩 늘어날 때마다 리스트에 값을 추가한다.
for (int i=0;i<arr.length;i++) {
arr[i] = in.next();
}
in.close();
for(int i =0;i<arr.length;i++) {
int cnt =0; // 연속횟수
int sum =0; // 누적합산
for (int j=0;j < arr[i].length();j++) {
if(arr[i].charAt(j) == 'O' ) {
cnt++;
}
else {
cnt = 0;
}
sum += cnt;
}
System.out.println(sum);
}
}
}
반응형
'Projects > 백준 문제' 카테고리의 다른 글
백준 15596번 자바 문제 (0) | 2022.02.07 |
---|---|
백준 3444번 자바 문제 평균은 되겠지 (0) | 2022.02.07 |
백준 1546번 자바 평균 (0) | 2022.02.05 |
백준 3052번 자바 문제 나머지값 구하기 (0) | 2022.02.05 |
백준 2577번 자바 문제 숫자의 개수 (0) | 2022.02.05 |