문제

내가 작성한 코드
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
int main() {
char map[10][10]; // 지뢰를 저장할 char형 2차원 배열
int result[10][10] = {0}; //지뢰 개수를 저장할 int형 2차원 배열
for(int se = 0; se<10; se++){ //세로로 0부터 9번째 줄까지
char input[10]; //input 한줄 읽어오기
scanf("%s", &input);
for(int ga = 0; ga<10; ga++){ //가로로 0번째부터 9번째까지
map[se][ga] = input[ga]; //지뢰 지도에 한 글자씩 저장해주기
if(map[se][ga] == '*'){ //지뢰일 경우
result[se][ga] -= 10; //본인 자리는 -10으로 설정
if(se!=0){ //세로로 맨 첫번째 줄이 아닐 경우
int a = se-1;
result[a][ga]++; //자기 윗 줄 +1하기
}
if(se!= 9){ //세로로 맨 마지막 줄이 아닐 경우
int a = se+1;
result[a][ga]++; //자기 아랫줄 +1하기
}
if(ga!=0){ //가로로 맨 첫번째가 아닐 경우
int b = ga-1;
result[se][b]++; //자기 왼쪽 +1하기
}
if(ga!=9){ //가로로 맨 마지막이 아닐 경우
int b = ga+1;
result[se][b]++; //자기 오른쪽 +1하기
}
}
}
}
for(int se = 0; se<10; se++){ //세로로 0번째부터 9번째까지
for(int ga = 0; ga<10; ga++){ //가로로 0번째부터 차례대로
int finalresult = result[se][ga]; //result 값 불러오기
if(finalresult == 0){ //주위 지뢰가 0일 경우
printf("_");
}
if(finalresult == 1){ //주위 지뢰가 1일 경우
printf("1");
}
if(finalresult == 2){ //주위 지뢰가 2일 경우
printf("2");
}
if(finalresult == 3){ //주위 지뢰가 3일 경우
printf("3");
}
if(finalresult == 4){ //주위 지뢰가 4일 경우
printf("4");
}
if(finalresult<0){ //지뢰일 경우
printf("*");
}
}
printf("\n"); //10개 출력후 줄 바꿈
}
return 0;
}
이렇게 코드를 짜면 VS Code에서는 잘 돌아가던데
제출 사이트에서는 오류 뜨더라....
조교님께 여쭤봤더니 조교님도 오류 뜬다고 약간 정식이 아닌 방법으로 풀어서 내라더라
그래서 그 사이트에는
if(map[0][0] =='*'){ //map[0][0]만 한 번 더 고려해주는 코드
result[0][0] = -10;
}
else{
if(map[0][1] == '*' && map[1][0] == '*'){ //옆과 아래가 모두 지뢰
result[0][0] == 2;
}
else if(map[0][1] == '*' && map[1][0] != '*'){ //옆은 지뢰 아래는 지뢰 X
result[0][0] == 1;
}
else if(map[0][1] != '*' && map[1][0] == '*'){ //옆은 지뢰 X 아래는 지뢰
result[0][0] == 1;
}
else{ //둘 다 지뢰 X
result[0][0] == 0;
}
}
이거 추가해줬더니 정답 처리되더라....
왜 .... 사이트에서는 다르게 나오는 걸까ㅠㅠ
아는 사람 찾고싶다.....
'C언어 > 주차별 문제' 카테고리의 다른 글
[10주차] 이중포인터를 이용한 최솟값, 최댓값 구하기 (0) | 2023.06.06 |
---|---|
[8주차] 개미 (0) | 2023.04.23 |
[8주차] 2차원 배열에서 값 찾기 (0) | 2023.04.23 |
[8주차] 문자열의 길이_No Space_2차원 배열 (0) | 2023.04.23 |
[8주차] 2차원 배열 평균 (0) | 2023.04.23 |