C언어/주차별 문제
[5주차] 지뢰찾기1
슈슈버거
2023. 4. 23. 00:28
문제
내가 작성한 코드
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
int main() {
char map[10]; //지뢰 입력받을 char형 배열
char result[10]; //지뢰 개수 반영할 char형 배열
scanf("%s", &map);
for(int i = 0; i<10; i++){ //map의 처음부터 끝까지
if(map[i] == '*'){ //map[i]가 지뢰일 경우
result[i] = '*'; //result[i]도 지뢰로 표현
}
else{//지뢰가 아닐 경우
if(i == 0){ //맨 처음 위치일 경우
if(map[1]=='*'){ //옆 칸이 지뢰면
result[0] = '1'; //내 주위 지뢰는 1개
}
else{ //옆 칸이 지뢰가 아니면
result[0] = '_'; //내 주위 지뢰는 0개
}
}
else if(i == 9){ //맨 마지막 위치일 경우
if(map[8]=='*'){ //옆 칸이 지뢰면
result[9] = '1'; //내 주위 지뢰는 1개
}
else{ // 옆 칸이 지뢰가 아니면
result[9] = '_'; //내 주위 지뢰는 0개
}
}
else{ //2번째에서 9번째까지
if(map[i+1] == '*' && map[i-1] == '*'){//양 옆이 지뢰면
result[i] = '2'; // 내 주위 지뢰는 2개
}
else if((map[i+1] == '*' && map[i-1] == '.')||(map[i+1] == '.' && map[i-1] == '*')){
//내 주위에 한 곳은 지뢰 한 곳은 지뢰가 아니면
result[i] = '1'; // 내 주위 지뢰는 1개
}
else{ // 양 옆이 모두 지뢰가 아니면
result[i] = '_'; //내 주위 지뢰는 0개
}
}
}
} //지뢰 개수 판별 과정 종료
//출력 시작
for(int i = 0; i<10; i++){
printf("%c", result[i]);//result[i] 출력
}
printf("\n"); //개행
return 0;
}
이때가 좋았지 양옆만 고려하면 되고 ㅎㅎㅎㅎ