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 |
Tags
- 스팀 돈얼마나 썼는지보기
- 신경론
- 어도비플래시서비스종료
- 쿠르츠 게작트
- 비주얼스튜디오 코드 폰트
- 언리얼
- 티스토리사진한줄에 여러개
- 스팀 사용 금액
- 백준
- 티스토리사진
- 스팀에 돈 얼마나 썼지
- 롤 현질얼마나 했는지보기
- 비주얼스튜디오 코드 글꼴
- 도파 신경론
- Class1
- 자바스크립트 defer
- 자바메모
- 롤에 돈얼마나썼지
- 도선생님 신경론
- 가운뎃점 입력
- 티스토리 전체글수표시
- c++
- 게임 네트워킹
- 어도비플래시삭제
- 앤드류 테이트
- 한글 가운뎃점
- 티스토리전체글수
- 롤 현질금액보기
- 명언
- 티스토리 코드블록
Archives
- Today
- Total
Small Step
[C++] 백준 8958번 - OX퀴즈 본문
https://www.acmicpc.net/problem/8958
테스트 케이스의 수가 주어지고 그 수만큼 OX답이 나온다.
문제를 연속으로 맞은 만큼 연속된 O개수만큼 점수를 얻는다.
예를 들어 OOOXXOXOO 라면은
처음에 O가 3개 연속되니 1 + 2 + 3 이런 식으로 계산된다.
#include <iostream>
#include <string>
using namespace std;
int main() {
int t;
int len = 0;
int combo = 0;
int score = 0;
string ox;
cin >> t;
for (int i = 0; i < t; i++) {
cin >> ox;
len = ox.length();
for (int j = 0; j < len; j++) {
if (ox[j] == 'O' && combo > 0) {
combo++;
score += combo;
}
else if (ox[j] == 'O') {
combo++;
score++;
}
if (ox[j] == 'X') combo = 0;
}
cout << score << "\n";
score = 0;
combo = 0;
}
}
먼저 테스트 케이스를 받아주고 그 수만큼 for문을 돌려준다.
문자열을 받고 길이를 확인한 다음 문자열 배열의 각각의 요소를 확인한다.
combo라는 변수를 만들어 연속된 정도를 알 수 있게 해 주었다.
다른 효율적인 풀이도 있겠지만 개인적으로 나쁘지 않게 푼 문제 중 하나이다.
다른 글도 참고 안 하고 풀었고 구현도 내 생각에서는 나쁘지 않았다.
'알고리즘 > 백준' 카테고리의 다른 글
[C++] 백준 2908번 - 상수 & Class1 후기 (0) | 2022.07.27 |
---|---|
[C++] 백준 11720번 - 숫자의 합 (0) | 2022.07.27 |
[C++] 백준 3052번 - 음계 (0) | 2022.07.26 |
[C++] 백준 3052번 - 나머지 (0) | 2022.07.26 |
[C++] 백준 2577번 - 숫자의 개수 (0) | 2022.07.26 |
Comments