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;
}
}
댓글 0