inflearn logo
강의

Course

Instructor

Introduction to Algorithm Problem Solving for IT Employment (with C/C++): Coding Test Preparation

Lecture materials

87번 채점 프로그램에 오류가 있는 것 같습니다.

88

miru

1 asked

0

#include <iostream>
#include <vector>
#include <queue>

using namespace std;

int n, cnt;

int dir[8][2] = {
	{ 1, 0 }, { 0, 1 }, { -1, 0 }, { 0, -1 },
	{ 1, 1 }, { -1, 1 }, { 1, -1 }, { -1, -1 }
};

vector<pair<int, int> > islands;
vector<vector<bool> > map;


void searchIsland(int y, int x) {
	if (map[y][x]) {
		return;
	}
	
	++cnt;
	
	queue<pair<int, int> > q;
	q.push({ y, x });
	map[y][x] = true;
	
	while (!q.empty()) {
		pair<int, int> pos = q.front(); 
		q.pop();
		
		for (int i=0; i<8; ++i) {
			int tY = pos.first + dir[i][0];
			int tX = pos.second + dir[i][1];
						
			if (tY < 0 || tX < 0 || tY >= n || tX >= n) {
				continue;
			}
			
			if (map[tY][tX]) {
				continue;
			}
			
			map[tY][tX] = true;
			q.push({ tY, tX });
		}
	}
}


int main(int argc, char** argv) {
	int v;
	cin >> n;
	map.resize(n);
	
	for (int i=0; i<n; ++i) {
		map[i].resize(n);
		for (int j=0; j<n; ++j) {
			cin >> v;
			
			map[i][j] = !v;
			
			if (v) {
				islands.push_back(make_pair(i, j));
			}
		}
	}
	
	for (int i=0; i<islands.size(); ++i) {
		searchIsland(islands[i].first, islands[i].second);
	}
	
	printf("%d", cnt);
	return 0;
}

 

작성된 테스트 케이스를 직접 써보니 output과 동일한 결과가 나오는데도 모두 틀렸다고 나옵니다.

제 파일 문제인가 싶어서 프로그램을 다시 다운받아서 똑같은 실행 파일을 붙여넣어도 틀렸다고 나옵니다.

혹시나 해서 강사님 소스 코드를 복사해 빌드하여 제출해보니 역시나 틀렸다고 나옵니다.

확인 부탁드립니다.

 

image.png

c++ 코딩-테스트

Answer 2

0

codingcamp

안녕하세요^^

위 코드를 제 컴퓨터에서 채점해보니 100점이 나옵니다.

0

miru

확인 감사합니다.

utf-8 한글 인코딩을 사용 중이었는데 원래대로 변경하니 정상적으로 채점되네요.

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다.

장민석님의 코드가 테스트 케이스와 동일한 결과를 출력하더라도 오류가 있는 것처럼 보이는 상황은 다음과 같은 몇 가지 원인일 수 있습니다:

  1. 입출력 형식의 문제: 문제의 요구 사항에 맞는 정확한 입출력 형식을 사용하고 있는지 확인해 보세요. 예를 들어, 줄바꿈이나 공백 등이 문제의 요구 사항과 다를 수 있습니다.

  2. 초기화 문제: 변수를 초기화하는 부분에 문제가 있을 수 있습니다. 특히, cnt 변수나 다른 상태를 저장하는 변수가 실행 시마다 올바르게 초기화되는지 체크해야 합니다.

  3. 테스트 데이터 문제: 테스트 케이스 자체에 오류가 있을 수 있습니다. 직접 문제에서 제공한 테스트 케이스들과 비교하거나, 다른 자가 테스트 데이터를 만들어 테스트해보세요.

  4. 환경 문제: 로컬 환경과 채점 환경의 차이로 인해 발생하는 문제일 수 있습니다. 로컬에서는 정상적으로 실행되어도, 채점 서버의 경우 다를 수 있습니다. 다르게 설정해서 테스트해 보세요.

음성적으로도 문제가 없다면, 강사님께 직접 문의하여 테스트 케이스나 점검할 요소들을 확인해 보시는 것도 좋은 방법일 것 같습니다.

아래 링크를 클릭하여 더 많은 도움을 받을 수 있습니다:
- 문의하기

문제가 해결되길 바라겠습니다. 감사합니다.

그리디 파트

0

114

2

안녕하세요. 선생님(54번 코드 관련 문의)

0

141

2

테스트 파일 exit_coe_1, time_limit_exceeded 질문

0

142

1

C언어로 코드를 짜면 채점 시에 한 문제 빼고 시간 초과가 발생하는데 해결하는 방법이 있을까요?

0

171

1

19번 질문있습니다

0

121

1

6번 관련 채점오류입니다

0

88

2

22번 문제는 C로 풀어주신 건가요 C++로 풀어주신 건가요?

0

166

2

dev C++ 콘솔창 바로 닫힘

0

245

1

최신화하기

0

171

1

채점이 안되요...

1

260

1

안녕하세요 강사님 정렬에 대해서 설명이 조금 더 듣고 싶습니다.

0

113

1

45번 공주구하기 문제를 list를 이용해서 이렇게 풀어도 될까요?

0

155

1

39번 두 배열 합치기 문제 채점 오류인가 코드 오류인가

0

155

0

채점기에서 틀렸다고 나오는데 이유를 모르겠습니다.

0

149

2

해당 강의에서 C언어로만 진행하는 강의 문의 건

0

144

2

87번 문제 섬나라 아일랜드 질문

0

128

1

16번 문제에서 직접 답을 대입하면 정답이 나오는데 채점에서 wrong answer가 나옵니다.

0

149

1

40번 교집합 문제

0

166

1

43번 뮤직비디오 문제 테스트케이스 4번을 만족 못합니다.

0

169

1

41. 연속된 자연수의 합 문제 질문있습니다.

0

165

1

질문있습니다.

0

191

2

시간초과가 나요

0

172

1

43번 문제 3 ~ 5번에 문제가 있는것 같습니다.

0

247

1

43번 채점결과

0

413

2