문제 설명
n명이 가로로 앉을 수 있는 긴 의자에 사람이 여러명 앉아 있다.
철수는 이 의자에 앉고 싶은데 이왕이면 좌우에 사람이 없는 곳에 앉고 싶다.
의자의 길이 n과 자리에 사람이 앉아 있는지에 대한 정보가 주어질 때 이러한 자리의 수를 출력하시오.
단, 양 끝자리의 경우 한쪽에만 사람이 없으면 앉을 수 있는 자리로 본다.
입력
첫째 줄에 의자의 길이 n이 입력된다. ( 1 <= n <= 10,000 )
둘째 줄에 제일 왼쪽 자리부터 자리의 정보가 입력된다. 사람이 앉아 있으면 1, 없으면 0을 입력받고, 각 자리의 정보는 띄어쓰기로 구분된다.
출력
좌우에 사람이 없는 자리의 수를 출력한다.
입력 예시
20
1 0 0 0 0 1 1 1 0 0 1 0 0 0 1 1 1 0 1 0
출력 예시
3
나의 코드
#include <stdio.h>
int main()
{
int n, i, count = 0;
scanf("%d", &n); // n 입력 받음
int s[n]; // 배열 생성
for (i = 0; i < n; i++)
scanf("%d", &s[i]); // 입력 받음
for (i = 1; i < n - 1; i++)
{
if (s[i] == 0)
{
// 자신의 자리와 양옆이 다비었으면 카운트 증가
if (s[i - 1] == 0 && s[i + 1] == 0)
count++;
}
}
if (s[0] == 0 && s[1] == 0) // 맨 앞쪽 자리 계산
count++;
if (s[n - 1] == 0 && s[n - 2] == 0 && n>1) // 뒷쪽 자리 계산
count++;
printf("%d", count); // 출력
return 0;
}
'알고리즘 공부 > CodeUp 문제풀이' 카테고리의 다른 글
코드업 3019:스케줄 정리(C) (2) | 2023.10.06 |
---|---|
코드업 1405:숫자 로테이션(C) (2) | 2023.10.05 |
코드업 1472:2차원 배열 지그재그 채우기 2-5(C) (0) | 2023.10.02 |
코드업 1430:기억력 테스트 2(C) (2) | 2023.10.01 |
코드업 3510:예산 관리 (2) | 2023.09.30 |