Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 박스#강아지집#만들기
- 내일배움카드
- 혼술 술자리 인싸앱
- 강아지 #박스집 #복층
- 홈CCTV
- Java & SpringBoot로 시작하는 웹 프로그래밍
- 강아지 스마트 펜스
- 안드로이드#앱만들기#알바
- 부르지마세요
- #FIFAONLINE4
- 불끌때
- 랜덤스쿼드
- 피온4
- fifaonline
- 안녕 디지몬
- K디지털크레딧
- Ai
- 패스트캠퍼스
- 아두이노#작품#사료급식기
- 안드로이드
- fifaonline4
- D-ID
- 부의감각
- 안드로이드 #앱개발#계산기
- 랜덤
- 안드로이드 그림판#그림메모장#낙서장
- 독서감상문
- 자바 인강
- 바이트디그리
- 스쿼드 메이커
Archives
- Today
- Total
LC Studio
백준 8958번 (JAVA) 본문
"OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수는 3이 된다.
"OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다.
OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성하시오.
위와같은 문제였다.
배열에 값을 담아, 각 문자별로 비교하는 방식으로 작성했다.
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 N = Integer.parseInt(br.readLine());
String array[] = new String[N];
int discrimination = 0; //자릿값이 O인 경우에 값을 증가시킨다.
int sum[] = new int[N]; //합
for(int i=0;i<N;i++){ //처음 N의 개수만큼 반복한다.
array[i] = br.readLine(); //다음줄을 읽어온다.
for(int j=0;j<array[i].length();j++){ //읽어온 줄의 길이만큼 반복한다.
if(array[i].charAt(j) == 'O'){ //배열의 j번째값이 'O' 이라면...
++discrimination; //discrimination 값을 증가시킨다.
sum[i] = sum[i]+discrimination; //기존의 sum의 값에 추가로 discrimination값을 더해준다
}
else{
discrimination = 0; //만약 값이 X라면 discrimination의 값을 0으로 초기화한다.
}
}
discrimination =0; //한줄의 반복이 끝나면 다음줄을 위해 discrimination의 값을 0으로 초기화시킨다.
}
br.close();
for(int i=0;i<N;i++){
System.out.println(sum[i]);
}
}
}
처음에 charAt()라는 함수를 몰라, 한참동안 해결하지 못했다.
charAt이란 string 타입으로 받은 문자열을 char 타입으로 한 글자만 받는 함수라고 한다.
이걸 활용해 array배열에 담긴 "OXXXO"같은 문자열을 char 타입으로 한글자씩 받아와 'O'와 같은지 비교했다.
내 기준에서 처음으로 간단한 알고리즘으로 풀어서 뿌듯했다.ㅎㅎ
반응형
'Java > 백준 알고리즘' 카테고리의 다른 글
백준 4673 셀프 넘버 JAVA (0) | 2022.03.15 |
---|---|
백준 4344 평균은 넘겠지 (Java) (0) | 2022.03.15 |
백준 3052 나머지(JAVA) (0) | 2022.03.11 |
백준 2577번 숫자의 개수 (0) | 2022.03.11 |
백준 1110번 더하기 사이클 (JAVA) (0) | 2022.03.10 |