백준(S4) 10773번: 제로 (C언어 C11 C99)

2021. 10. 18. 19:16·C언어/백준 문제풀이
반응형

코드를 보기 전에: 이 문제는 Last in First out 스택 문제다.

보통의 사람들은 이 문제를 함수로 풀었지만, 나는 다르게 풀었다.

나는 배열 하나를 추가로 만들어서 풀었다.

 

예제 문제를 예시로 들자면, 1,3,5,4,0,0,7,0,0,6이란 숫자가 입력됐다.

반복문을 만들어서 입력받은 숫자가 0이 아니면 다른 배열에 추가시키도록 했다.

1 3 5 4    

 

1
2
3
4
5
6
7
for (int a = 0; a < num; a++)
    {
        if (nums[a] != 0)
        {
            result[cnt] = nums[a];
            cnt++;
        }
cs

 

그러다 숫자 0이 나오면, 다른 배열에 있는 가장 뒤에있는 숫자를 0으로 만들게했다.

1
2
3
4
5
else if (nums[a] == 0)
        {
            result[cnt - 1] = 0;
            cnt--;
        }
cs

예제 문제에서는 4 뒤에 0이라는 숫자가 나오므로, 4라는 숫자가 없어지고 0이 된것이다.

그 후, 입력된 숫자가 0 이 아니면 숫자 0이 있는 자리에 넣게 할수있게, 위치를 1을 뺏다.

1 3 5 0  

이렇게 만든 배열에 숫자가 전부 나열되면, 그 숫자들을 다 더한값이 정답이 된다.

 

full code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <stdio.h>
int nums[100001];
int result[100001];
int main()
{
    int num, cnt = 0;
    int sum = 0;
    scanf("%d", &num);
    for (int a = 0; a < num; a++)
    {
        scanf("%d", &nums[a]);
    }
    for (int a = 0; a < num; a++)
    {
        if (nums[a] != 0)
        {
            result[cnt] = nums[a];
            cnt++;
        }
        else if (nums[a] == 0)
        {
            result[cnt - 1] = 0;
            cnt--;
        }
    }
    for (int a = 0; a <= cnt; a++)
    {
        sum += result[a];
    }
    printf("%d\n", sum);
    return 0;
}
cs
반응형
'C언어/백준 문제풀이' 카테고리의 다른 글
  • 백준(S3) 11399번 ATM (C언어 C11 C99)
  • 백준(B3) 2747번: 피보나치 수 (C언어 C11 C99)
  • 백준(S4) 1026번: 보물 (C언어 C11 C99)
  • 백준(S5) 1427번: 소트인사이드 (C언어 C11 C99)
코딩하는_대학생
코딩하는_대학생
Java Developer, Open Source Enthusiast, Proud Son
  • 코딩하는_대학생
    코딩하는 대학생에서 개발자까지
    코딩하는_대학생
  • 전체
    오늘
    어제
    • 분류 전체보기 (218)
      • 코딩하는 대학생의 책 추천 (8)
        • 클린코드 (5)
        • 헤드퍼스트 디자인패턴 (3)
      • Backend (8) N
        • Spring (14)
        • AWS (3)
        • 회고 (4)
        • Redis (5)
        • 다양한 시각에서 바라본 백엔드 (3)
      • Python (35)
        • 개념 및 정리 (15)
        • 백준 문제풀이 (20)
      • JAVA (17)
        • 개념 및 정리 (14)
        • 백준 문제풀이 (2)
      • 왜? (7)
      • C언어 (42)
        • 개념 및 정리 (9)
        • 백준 문제풀이 (32)
      • 개인 공부 (27)
        • 대학 수학 (5)
        • 대학 영어 (10)
        • 시계열데이터 처리 및 분석 (5)
        • 컴퓨터 네트워크 (6)
        • 운영체제 (1)
      • 솔직 리뷰 (23)
        • 꿀팁 (6)
        • IT기기 (1)
        • 국내 여행 (7)
        • 맛집 (2)
        • 알바 리뷰 (2)
      • 대외활동 (17)
        • 체리피우미 3기 (4)
        • 꿀잠이들 6기 (13)
      • 음식 평가 (1)
      • 일상 & 근황 (2)
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코딩하는_대학생
백준(S4) 10773번: 제로 (C언어 C11 C99)
상단으로

티스토리툴바