본문 바로가기

Study/코딩테스트 문제풀이

[SWEA D3] 1206. View

대상 빌딩과 주변 4개의 빌딩을 비교할 때, 자기 자신을 비교하는 케이스를 포함하여 diff가 0이되고, break되어 버림.. 그래서

테케 실행했을 때 0나옴

#include<iostream>
#include<stdio.h>
#include<string.h>

using namespace std;

int main(int argc, char** argv)
{
	int test_case;
    int W; //건물 수
    int B[1000]; // i번째 건물의 층수는 B[i]
    int i; // B의 인덱스
    int j; // local 비교
    int cnt; //조망권이 확보된 세대의 수
    int diff;//주변 건물과 높이 차이
    int diff_min;//diff 중 최댓값
    int b; // break
 
	for(test_case = 1; test_case <= 10; ++test_case)
	{
		scanf("%d", &W); //cin >> W;
        cnt = 0;
        
        B[1000] = {0,};
        printf("#%d ", test_case);
        
        for(i = 0; i < W; i++)
        {
         	scanf("%d", &B[i]);
        }
                          
        for(i = 2; i < W - 2; i++)
        {
            		diff_min = B[i];
        			for(j = i-2; j <= i+2; j++)
                    {
                        if(j == i) continue; //자기 자신과 비교하지 않는다.
                          diff = B[i] - B[j];
                          if(diff <= 0)
                          {
                              diff_min = 0;
                              break;
                          }
                          else
                          {
                              if(diff_min >= diff)
                                  diff_min = diff;
                          }
                    }
            		cnt += diff_min;
        }
       printf("%d\n", cnt);

	}
	return 0;//정상종료시 반드시 0을 리턴해야합니다.
}

'Study > 코딩테스트 문제풀이' 카테고리의 다른 글

[코드트리 챌린지] 1주 - dx dy 아주 기본  (1) 2023.09.10
[SWEA D2] 1209. Sum  (0) 2023.02.15
[SWEA D3] 1208. Flatten  (0) 2023.02.15
[SWEA D2] 1204. 최빈수 구하기  (0) 2023.02.15