백준 알고리즘 - 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로 초기화시키는 과정을 해 주면 됩니다.
'Programming > Algorithm' 카테고리의 다른 글
백준 알고리즘 - 2563번 : 색종이 (0) | 2016.05.14 |
---|---|
백준 알고리즘 - 2525번 : 오븐 시계 (0) | 2016.05.14 |
백준 알고리즘 - 2501번 : 약수 구하기 (0) | 2016.04.19 |
백준 알고리즘 - 2441번 : 별 찍기 -4 (0) | 2016.04.19 |
백준 알고리즘 - 1789번 : 수들의 합 (0) | 2016.04.19 |
WRITTEN BY