https://www.acmicpc.net/problem/8958


이게 문제고


밑에가 제가 작성한 코드인데..


결과값을 출력해보니 ar(문자배열)이 첫번쨰 for loop 의 시작으로 되돌아갈 때 초기화 되지 않아서 출력값에 문제가 발생하는것 같더라구요..

설명좀해주시면 정말 감사하겠습니다..


#include <iostream>

#include <stdio.h>

using namespace std;



int main() {


int testNum;


cin >> testNum;


int* output = new int[testNum];


for (int i = 0; i < testNum; i++) {

char ar[80];     // 여기서 선언함과 동시에 새로운 배열이 생성되는게 아닌가요?

int arr[80] = { 0, };   

int sum = 0;



cin >> ar;



if (ar[0] == 'X') {

arr[0] = 0;

}

else if (ar[0] == 'O') {

arr[0] = 1;

}       //최초항 셋팅




for (int i = 1; i < 80; i++) {

if (ar[i] == 'X') {

arr[i] = 0;

}

else if (ar[i] == 'O') {

arr[i] = arr[i - 1] + 1;

}            //나머지항들 계산후 arr(숫자배열)에 저장



}





for (int i = 0; i < 80; i++) {

sum += arr[i];

}


output[i] = sum;


} //repeat for #of test cases.     Calculate and store value int array(output)


for (int i = 0; i < testNum; i++) {

cout << output[i] << endl;

}


}