일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 1057번
- 프로그래머스
- 1759번
- 알고리즘
- codility
- 1793번
- BinaryGap
- Java
- python
- 신규아이디추천
- 분할정복
- 입이 트이는 영어
- 영어
- programmers
- 11727번
- 백준
- SecurityFilterChain
- 1992번
- caniuse
- 파이썬
- 9251번
- WebSecurityConfigurerAdapter
- 11047번
- 2630번
- Spring Security
- EBS어학당
- 권주현의 진짜 영국 영어
- 18406번
- github
- 2163번
Archives
- Today
- Total
철갑이의 이모저모
[백준] 8958번(OX퀴즈) with Java 본문
728x90
문제
풀이
O가 나올때마다 count 값을 누적해주고 result 배열에 저장 해준다. O가 안나오면 count를 0으로 초기화 한다.
result 배열 값을 전부 더한 값을 arr에 넣어주고 출력.
좀 더 시간을 단축해볼 것.
답
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int[] arr = new int[n];
int cnt = 0;
for(int i=0; i<n; i++) {
String[] ox = br.readLine().split("");
int[] result = new int[ox.length];
for(int j=0; j<ox.length;j++) {
if(ox[j].equals("O")) {
cnt++;
result[j]=cnt;
}else {
cnt=0;
result[j]=cnt;
}
}
for(int h=0; h<result.length; h++) {
arr[i] += result[h];
}
cnt=0;
}
for(int k=0; k<arr.length; k++) {
System.out.println(arr[k]);
}
}
}
728x90
'알고리즘' 카테고리의 다른 글
[백준] 2003번(수들의 합 2) with Python (2) | 2020.10.02 |
---|---|
[백준] 18406번(럭키 스트레이트) with Python (0) | 2020.10.02 |
[백준] 1057번(토너먼트) with Java (0) | 2020.09.27 |
[백준] 2525번(오븐시계) with Python (0) | 2020.09.27 |
[백준] 2163번(초콜릿 자르기) with Python (0) | 2020.09.27 |