백준 알고리즘 - 2506번 점수계산 문제입니다.


(참고 - https://www.acmicpc.net/problem/2506 )




코드)

#include <stdio.h>

int main() {

int arr[100];

int num, i, panel=1, sum=0, tf=0;

scanf("%d", &num);

for(i=0; i < num; i++) {

scanf("%d", &arr[i]);

if(arr[i] == 1) {

if(tf == 1)

panel += 1;

sum += panel;

tf = 1;

}

else {

tf = 0;

panel = 1;

}

}

printf("%d\n", sum);

return 0;

}


- tf는 연속해서 1의 값인지를 확인하기 위한 하나의 플래그 장치로 사용되는 변수입니다.

처음, 입력받을 숫자를 num이라는 변수에 담은 후 for문을 이용하여 입력받은 num의 갯수만큼 반복하여 배열에 값을 입력받도록 합니다. 배열은 개수인 100만큼 할당하여 생성해주었습니다.

 간단하게 생각하여 입력받은 값이 1일때,  tf변수의 값을 한번 더 if문을 이용하여 비교해서 1이라면 전에 입력받은 값이 1이었다고 판단할 수 있고 0이라면 전체 입력받은 값이 0이라는 것을 알 수 있습니다.

이를 이용해 tf가 1이라면 기존의 변수 panel 에 1을 추가로 더하여 결과값 sum에 panel의 값을 더해주면 됩니다.

만약 입력받은 값이 0이라면 tf는 0으로, panel은 기본값 1로 초기화시키는 과정을 해 주면 됩니다.


WRITTEN BY
SiriusJ

,