-
[백준-c++] 8958번 : OX퀴즈Problem Solving 2021. 11. 19. 01:43
답안
첫 번째 시도(실패) - 아직도 반례를 모르겠다.. 어디서 틀린 건지 아시는 분 알려주시면 감사하겠습니다(__)
더보기더보기#include <iostream> using namespace std; int main() { ios_base::sync_with_stdio(false); int n; int seq=0, score=0; cin >> n; char ox[n][81]; for(int s=0; s<n; s++){ cin >> ox[s]; } for(int s=0; s<n; s++){ int i=0; score=0; while(ox[s][i] != '\0'){ seq=0; while(ox[s][i] == 'O'){ seq++; score += seq; i++; } i++; } cout << score << '\n'; } return 0; }
두번째 시도(성공)
#include <iostream> using namespace std; int main() { ios_base::sync_with_stdio(false); int n; cin >> n; char ox[81]; for(int s=0; s<n; s++){ cin >> ox; int score = 0; //총점 int flag=0; //연속 O 여부 int seq_score=1; //연속 O일 때 추가될 점수 for(int i=0; ox[i] != '\0'; i++){ if(ox[i] == 'O'){ flag=1; score += seq_score; } else{ flag=0; seq_score=1; } if(flag==1){ seq_score++; } } cout << score << endl; } return 0; }
느낀 점
- 다중첩반복문은 flag를 잘 쓰면 한 단계 줄일 수 있다.
- 변수 초기값 설정은 생각보다 중요하다.
궁금한 점
- 배열 크기를 입력 문자열 크기에 맞게 동적으로 할당하는 방법은?
'Problem Solving' 카테고리의 다른 글
[leetcode - C] Maximum Subarray (0) 2022.07.16 [leetcode] 204. Count Primes - C (0) 2022.04.14 [leetcode] 172. Factorial Trailing Zeroes - C (0) 2022.03.12 [leetcode] 70. Climbing Stairs - C (0) 2022.03.05 [백준-C++] 10951번 : A+B -4 (0) 2021.11.21