티스토리 뷰

반응형


#. Problem

* The copyright in this matter is in Inflearn



#. Resolution Process

  1. Read and understand problem

  2. Redefine the problem + abstract

  3. Create solution plan (select Algorithm, Data structure)

  4. Prove the plan (check performance time and usage memory)

  5. Carry out the plan

  6. Look back on the plan and find a way to improve it


#. Solve

  1. 간단하게 10으로 계속 나누면서 나머지를 count 하는 방법도 있지만, 이 방법은 속도적인 측면에서 좋지 않다.

     왜냐하면 나눗셈은 연산이 오래 걸린다. 그래서 최적화 단계에서도 나눗셈 연산은 피하게 된다. 

     무엇보다도 최대 자연수의 길이는 100이므로 어차피 int 형으로 입력을 받지 못 한다..크크

  2. 자연수를 문자열로 입력받고, 문자열 탐색을 통해 사용된 숫자를 count 해보았다.


#. 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
#include<stdio.h>
 
using namespace std;
 
int n[10];
char a[100];
 
int main() {
    freopen("input.txt""rt", stdin);
    int i, max = 0;
 
    scanf("%s"&a);
 
    for (i = 0; a[i] != '\0'; i++)
        n[a[i] - 48]++;
 
    for (i = 1; i < 10; i++)
    {
        if (n[max] < n[i])
            max = i;
        else if (n[max] == n[i])
            max = max > i ? max : i;
    }
 
    printf("%d\n", max);
 
    return 0;
}
cs


#. Other 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
 
#include<stdio.h>
 
int ch[10];
 
int main(){
    int i, digit, max=-2147000000, res;
    char a[101];
 
    scanf("%s"&a);
 
    for(i=0; a[i]!='\0'; i++){
        digit=a[i]-48;
        ch[digit]++;
    }
 
    for(i=0; i<=9; i++){
        if(ch[i]>=max){
            max=ch[i];
            res=i;
        }
    }
    
    printf("%d\n", res);
 
    return 0;
}
 
cs

일단 로직은 유사하다.

사용 변수와 조건을 제외하고는 비슷한게 풀어낸 것 같다.!


#. Result

  - Input --------------------------------------------------------

1230565625

------------------------------------------------------------------


  - Output --------------------------------------------------------

5

------------------------------------------------------------------



반응형

'PS > Problem_Solving' 카테고리의 다른 글

[Inflearn] 소수의 개수  (0) 2020.04.21
[Inflearn] 뒤집은 소수  (0) 2020.04.21
[Inflearn] 숫자의 총 개수(large)  (0) 2020.04.20
[Inflearn] 숫자의 총 개수(small)  (0) 2020.04.20
[Inflearn] 자릿수의 합  (0) 2020.04.20
댓글
최근에 올라온 글
최근에 달린 댓글
링크
Total
Today
Yesterday