본문 바로가기
Algorithms/simulation

1206 View

by OKOK 2018. 10. 26.

강변 빌딩 옆을 뺵뺵하게 밀집한 지역

빌딩 좌우로 밀집. 양쪽 모두 거리 2이상 공간이 확보될 대 조망권이 확보된다고 말함.

조망권이 확보된 세대의 수를 반환하는 프로그램 작성.

강변에 8채의 빌딩이 존재.

연두색 색칠된 여섯 세대 좌우 2칸 이상의 공백이 존재하므로 조망권이 확보됨.

답은 6이 된다.

 

제약 사항

가로 길이 항상 1000이하로 주어짐

맨 왼쪽 두 칸과 맨 오른쪽 두 칸에는 건물이 지어지지 않는다.

각 빌딩의 높이는 최대 255입니다.

 

입력

테케 길이 주어짐

총 10개의 테캐

 

출력

조망권 확보된 세대의 수를 출력합니다. 

#include <stdio.h>

#define MAX(A,B) A>B?A:B // 디파인 맥스
#define MIN(A,B) A>B?B:A // 디파인 민

int bd[1000]; // 제약 사항 가로 길이는 항상 1000이므로

int calc(int i) // 계산 함수
{
    int s1, s2; // 
    s1 = MIN(bd[i] - bd[i - 1], bd[i] - bd[i + 1]);
    if (s1 < 1)
        return 0;
    s2 = MIN(bd[i] - bd[i - 2], bd[i] - bd[i + 2]);
    if (s2 < 1)
        return 0;
    return MIN(s1, s2);
}

int main(void) // 메인 함수
{
    int i, j; // 보통 아이, 제이는 인덱스 겠지?
    int b_count; // b_count ? 
    int answer; // 정답 

    //freopen("input.txt", "r", stdin);

    for (i = 0; i < 10; i++)
    {
        answer = 0;
        scanf("%d", &b_count);
        for (j = 0; j < b_count; j++) // b_count 
        {
            scanf("%d", &bd[j]);
            if (j >= 4)
            {
                answer += calc(j - 2);
            }
        }
        printf("#%d %d\n", i + 1, answer);
    }
    return 0;
}

 

'Algorithms > simulation' 카테고리의 다른 글

1213 String  (0) 2018.10.26
1209 Sum  (0) 2018.10.26
1208 Flatten  (0) 2018.10.26
1204 최빈수 구하기  (0) 2018.10.26
LCS / ALL Pair Shortest Path / 타일링  (0) 2018.10.26

댓글