• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

선생님 질문이있습니다.

21.04.08 20:14 작성 조회수 122

0

테스트 케이스 전부 돌아가는데.. 

제 코드를 돌려보면 런타임 에러가 나옵니다. 

제 코드 한번만 봐주실ㅇ 수 있을까요?

#include<iostream>
#include<vector>
#include<stdio.h>
#include<algorithm>

using namespace std;

int N;


int arr[101];
int ans[101];


int main() {

	
	cin >> N;

	for (int i = 1; i <= N; i++) {
		cin >> arr[i];
	}
	for (int i = 1; i <= N; i++) {
		int cur = i;
		if (arr[cur] == 1) {
			ans[cur] = -1;
		}
		if (cur >= 1 && cur <= N&&arr[cur]==1) {
			int left = cur - 1;
			int right = cur + 1;
			ans[left] = 1;
			ans[right] = 1;

		}
	}
	
	
	for (int i = 1; i <= N; i++) {
		int cur;
		int answer = 0;
		if (i == 1&&ans[i]==0) {
			cur = i;
			
			while (ans[cur] != -1) {
				answer++;
				cur++;
			}
			ans[i] = answer;
		}
		if (i == N&&ans[i]==0) {
			cur = i;
			while (ans[cur] != -1) {
				answer++;
				cur--;
			}
			ans[i] = answer;
		}
		if(i>1&&i<N&&ans[i]==0){

			cur = i;
			int tmp = cur;
			int left = 0;
			int right = 0;
			while (ans[cur] != -1) {
				left++;
				cur--;
			}
			while (ans[tmp] != -1) {
				right++;
				tmp++;
			}
			answer = min(left, right);
			ans[i] = answer;

		}
		
	}

	int maxi = -2;
	for (int i = 1; i <= N; i++) {
		if (maxi < ans[i]) {
			maxi = ans[i];
		}
	}
	
	printf("%d", maxi);
}

답변 1

답변을 작성해보세요.

0

안녕하세요^^

정상적인 코드인것 같습니다.

채점사이트는 제가 만든게 아니라서 저도 잘 모릅니다. 인프런에 화면 오른쪽 하단에 있는 "문의하기" 로 질문해보세요.