Cospro 2급/C언어

[4차] 문제9. 위험한 지역 몇개인지 알려주기 답안 및 풀이

SRin23 2021. 5. 23. 17:44

◇ 문제 설명

4*4 크기 격자 모양 지형에 위험 지역이 몇 개인지 알고 싶습니다. 위험지역이란 동 ,서, 남, 북 인접한 지여깅 모두 해당 지역보다 높은 지역입니다 .예를 들어 지역 높이가 아래와 같다면
빨간 영역은 인접한 지역이 모두 해당 지역보다 높은 위험 지역입니다.
지역별 높이가 담긴 2차원 배열 height, height의 길이 height_len이 solution함수의 매개변수로 주어질때, 위험 지역이 몇 개인지 return하도록 solution함수를 완성해주세요.

 

◇ 매개변수 설명

지역별 높이가 담긴 2차원 배열 height, height의 길이 height_len이 solution함수의 매개변수로 주어집니다.
 ▶ 각 지역의 높이는 1이상 50이하인 자연수입니다.
 ▶ height_len은 항상 4입니다.

 

◇ return값 설명

위험 지역이 몇 개인지 return해주세요.

 

◇ 예시

height height_len return
[[3, 6, 2, 8], [7, 3, 4, 2], [8, 6, 7, 3], [5, 3, 2, 9]] 4 5

 

◇ 예시 설명

문제에 나온 에와 같습니다.

 

◇ 초기 내용

[출처]goormedu COSPRO 2급 기출문제 [4차] 문제9 초기내용


◇ 답안

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

int solution(int height[][4], int height_len) {
    int count = 0;
  	for(int i = 0; i<height_len; i++){
			for(int j = 0; j<4; j++){
				if(height[i][j]<height[i+1][j]&&height[i][j]<height[i][j+1]){
					if(height[i][j]<height[i-1][j]&&height[i][j]<height[i][j-1]){
						count++;
					}
				}
			}
		}
    return count;
}

int main() {
    int height[4][4] = {{3, 6, 2, 8}, {7, 3, 4, 2}, {8, 6, 7, 3}, {5, 3, 2, 9}};
    int height_len = 4;
    int ret = solution(height, height_len = 4);

    printf("solution 함수의 반환 값은 %d 입니다.\n", ret);
}

 

◇ 답안 힌트

    ▶ 2차원 배열이므로 중첩 for문을 활용하세요

    ▶ if문으로 동, 서, 남, 북의 값을 확인하세요

 

◇ 답안 풀이

(※ 실행 흐름 순으로 해석됩니다.)

int solution(int height[][4], int height_len) {
    int count = 0;
    for(int i = 0; i<height_len; i++){
        for(int j = 0; j<4; j++){

            //height[i+1][j] -> 남, height[i][j+1]-> 동
            if(height[i][j]<height[i+1][j]&&height[i][j]<height[i][j+1]){ 

                //height[i-1][j] -> 북, height[i][j-1]-> 서
                if(height[i][j]<height[i-1][j]&&height[i][j]<height[i][j-1]){
                    count++;
                }
            }
        }
    }
    return count;
}

 

 

◇ 실행결과

[4차] 문제9) 위험한 지역 몇개인지 알려주기 실행 결과

 

◇ 출처

https://edu.goorm.io/learn/lecture/16921/cos-pro-2%25EA%25B8%2589-%25EA%25B8%25B0%25EC%25B6%259C%25EB%25AC%25B8%25EC%25A0%259C-c%25EC%2596%25B8%25EC%2596%25B4

 

COS PRO 2급 기출문제 - C언어 - 구름EDU

YBM IT에서 시행하는 COS Pro 자격증 기출문제를 직접 풀어볼 수 있는 실습 위주의 강좌입니다.

edu.goorm.io