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 | 29 | 30 | 31 |
Tags
- Process Communication
- QA
- 5622
- For Beginners
- file IO
- process control
- system programming
- Baekjoon
- 전자책
- The Balance of the World
- 바샤
- 2941
- 시프
- 입력 버퍼
- 해바
- c++
- IT
- 시스템 프로그래밍
- 1874
- LJESNJAK
- 10773
- 백준
- c
- Parenthesis
- 브런치
- File 조작
- BAKA
- Zero That Out
- 4949
- 균형잡힌 세상
Archives
- Today
- Total
해바
8958) 5. 1차원 배열 : OX퀴즈(Score) 본문
문제
https://www.acmicpc.net/problem/8958
8958번: OX퀴즈
문제 "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수는 3이 된다. "OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다. OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는
www.acmicpc.net
내 코드
#include "stdio.h"
#include "stdlib.h"
int main() {
char c;
int* score, count(0), add(0);
scanf("%d", &count);
score = (int*)malloc(sizeof(int) * count); // 입력받은 값만큼 동적배열 생성
getchar(); // 버퍼 비우기
for(int i(0); i < count; i++) { // for문 1번 돌릴 때마다 1줄씩 처리됨
add = 0;
do {
scanf("%c", &c);
switch (c) {
case 'O':
score[i] += ++add; // 입력받는 값이 연속으로 O이면 +1, +2, +3 ... 증가
break;
case 'X':
add = 0; // X이면 초기화됨
break;
default:
continue; // 다른 값들은 그냥 패스
}
} while(c != '\n');
}
for(int i(0); i < count; i++) printf("%d\n", score[i]);
return 0;
}
'C, C++' 카테고리의 다른 글
4673) 6. 함수 : 셀프 넘버(Self Number) (0) | 2019.08.06 |
---|---|
10817) 2. if문 : 세 수 (0) | 2019.08.06 |
4344) 5. 1차원 배열 : 평균은 넘겠지(Above Average) (0) | 2019.08.05 |
3052) 5. 1차원 배열 : 나머지(MODULO) (0) | 2019.08.05 |
2920) 5. 1차원 배열 : 음계(NOTE) (0) | 2019.08.05 |
Comments