백준(S5) 4673번: 셀프넘버 (C언어 C11 C99)

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

코드를 보기전에: 나는 이 문제를 배열을 이용해 쉽게 풀었다.

배열을 0으로 초기화 시킨 뒤에 셀프 넘버 아닌 수에는 -1 저장하면 쉽게 구분할수 있다.

그리고 1, 10, 100, 1000의 자리 숫자 각각의 값을 구하는것도 중요한 문제였다

 

코드

 

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
33
34
35
36
37
38
39
40
41
42
43
44
#include <stdio.h>
int num[10000]; // 나는 문자열을 이용해 푸는 방법을 생각해봤다.
int result(int x);
int main()
{
    int res;
    for (int a = 1; a < 10000; a++)
    {
        res = result(a);
        num[res] = -1; // num이란 함수는 전역변수이므로, 0으로 초기화 되어있다. 그러므로 셀프넘버가 아닌 숫자배열에 -1을 넣으면 쉽게 구분할수 있다.
    }
    for (int a = 1; a < 10000; a++)
    {
        if (num[a] == 0) // 셀프 넘버가 아닌수는 -1이므로, 쉽게 구분가능
            printf("%d\n", a);
        else
            continue;
    }
    
}
int result(int x)
{
    int sol;
    if (x < 10)
    {
        sol = x * 2;
        return sol;
    }
    if (x < 100)
    {
        sol = (x / 10) + (x % 10) + x;
        return sol;
    }
    if (x < 1000)
    {
        sol = (x / 100) + (x % 100) / 10 + (x % 10) + x; // 주의할점. 10의자리 숫자를 나머지로 구한뒤 바로 더하면 안됨. 정수형이므로, 나누기 10을 하여서 일의 자리 숫자로 만들어야함.
        return sol;
    }
    if (x < 10000)
    {
        sol = (x / 1000) + (x % 1000) / 100 + (x % 100) / 10 + (x % 10) + x;
        return sol;
    }
}
Colored by Color Scripter
cs
반응형
'C언어/백준 문제풀이' 카테고리의 다른 글
  • 백준(B1) 2750번: 수 정렬하기 (C언어 C11 C99)
  • 백준(S5) 1436번: 영화감독 숌 (C언어 C11 C99)
  • 백준(S2) 11047번: 동전 0 (C언어 C11 C99)
  • 백준(S5) 7568번: 덩치 (C언어 C11 C99)
코딩하는_대학생
코딩하는_대학생
Java Developer, Open Source Enthusiast, Proud Son
  • 코딩하는_대학생
    코딩하는 대학생에서 개발자까지
    코딩하는_대학생
  • 전체
    오늘
    어제
    • 분류 전체보기 (218)
      • 코딩하는 대학생의 책 추천 (8)
        • 클린코드 (5)
        • 헤드퍼스트 디자인패턴 (3)
      • Backend (8)
        • 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
코딩하는_대학생
백준(S5) 4673번: 셀프넘버 (C언어 C11 C99)
상단으로

티스토리툴바