반응형
안녕하세요. BlockDMask 입니다.
면접보고 중간고사보고;; 코딩테스트 보고;;
바쁜 나날들을 보냈습니다. 1일 1문제를 못했습니다.
코딩 테스트 본 문제를 올릴수는 없으니;;
아무튼 오늘의 문제 풀어보겠습니다.
0. 제목
백준 8958 OX퀴즈
BOJ 8958 OX퀴즈
1. 문제 설명
"OOXXOXXOOO" 와 같은 OX퀴즈의 결과가 있다.
O는 문제를 맞는 것이고, X는 문제를 틀린 것이다.
문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다.예를 들어, 위의 문제의 점수는 3이 된다.
"OOXXOXXOOO"의 점수는 1 + 2+ 0 + 0 + 1 + 0 + 0 + 1 + 2 + 3 = 10 점이다.
OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성하시오.입력 --
첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고,
길이가 0보다 크고 80보다 작은 문자열이 주어진다.
문자열은 O와 X만으로 이루어져 있다.출력 --
각 테스트 케이스마다 점수를 출력한다.
2. 풀이과정
string 타입으로 받았지만 속도가 상대적으로 느려서 char 배열 형태로 받아서 풀었습니다.
3. 코드
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 32 33 34 35 36 37 38 39 | #include<iostream> #include<cstdio> using namespace std; void input(int& n){ cin >> n; } void solution(char &(arr[]), int &result){ int cnt=0; result =0; scanf("%s", arr); int i=0; while(arr[i] !='\0'){ if(arr[i]=='X'){ cnt = 0; }else{ cnt++; } result += cnt; i++; } } int main(void){ int n; int result; char arr[81]; input(n); for(int i=0; i<n; i++){ solution(arr, result); cout << result <<"\n"; } return 0; } |
4. 인증
문제출처 - https://www.acmicpc.net/problem/8958
감사합니다.
반응형
'<알고리즘 문제풀이&연습> > [C++] 백준, 프로그래머스 등등' 카테고리의 다른 글
[백준 2615] 오목 (0) | 2017.10.31 |
---|---|
[백준 2439] 별찍기2 (2) | 2017.10.30 |
[백준 2438] 별찍기1 (0) | 2017.10.29 |
[백준 2739] 구구단 (0) | 2017.10.28 |
[백준 1620] 나는야 포켓몬 마스터 이다솜 (0) | 2017.10.21 |
[백준 2622] 삼각형 만들기 (0) | 2017.10.19 |
[백준 10818] 최소, 최대 (0) | 2017.10.18 |
[백준 2566] 최댓값 (0) | 2017.10.17 |