2018년 7월 23일 월요일

백준 4673: Self Number

문제 링크
https://www.acmicpc.net/problem/4673



음... 일단 접근했던 생각은 아래와 같았다.

1. 생성자의 조건은 무엇인가?

2. 생성자가 없는지 확인하는 방법은 뭐가 있을까?

2-1. 주어진 숫자 범위 (1 ~ 10000)까지 매 숫자마다 생성자의 조건을 체크한다.

2-2. 주어진 숫자 범위 (1 ~ 10000)를 생성자로 만들 수 있는 수를 확인해서 플래그를 변경한다.

선택은 2-2로 풀이했다. 메모리를 많이 쓰긴하지만, 이게 더 속도가 빠를 것으로 판단했다.


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
45
46
47
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int solution(int &value)
{
    int res = value;
    char vString[6= { 0, };
    sprintf(vString, "%d", res);
    unsigned int strLen = strlen(vString);
    char *pBuffer = new char[strLen*2];
    for (unsigned int loopCount = 0; loopCount < strLen; loopCount++)
    {
        pBuffer[loopCount * 2]       = vString[loopCount];
        pBuffer[(loopCount * 2+ 1= '\0';
    }
    for (unsigned int loopCount = 0; loopCount < strLen*2;)
    {
        res += atoi(&pBuffer[loopCount]);
        loopCount += 2;
    }
    return res;
}
const int MAX_VALUE = 10000;
int main() 
{
    bool flagArray[MAX_VALUE + 1= {false, };
    for (int loopCount = 1; loopCount < MAX_VALUE + 1; loopCount++)
    {
        flagArray[solution(loopCount)] = true;
    }
    for (int loopCount = 1; loopCount < MAX_VALUE + 1; loopCount++)
    {
        if (flagArray[loopCount] == false)
            printf("%d\n", loopCount);
    }
    return 0;
}
cs

댓글 없음:

댓글 쓰기

A*, JPS 길찾기 알고리즘 시뮬레이션 사이트

https://qiao.github.io/PathFinding.js/visual/ 길 찾기 알고리즘 시행 과정을 보여주는 사이트다. 링크 메모..