algorithm codes/baekjoon online judge

1475번: 방 번호 (백준 온라인 저지, C++)

mimizzang 2019. 3. 31. 16:34

풀이

방 번호 문제의 경우, 6과 9가 겹치는 부분만 처리해주면 크게 어렵지 않은 문제입니다.

문자를 하나 하나 비교하여 배열을 증가시키는 경우 코드가 길어지기 때문에 '0'의 아스키 코드 값이 48인 것을 활용하여 문제를 풀었습니다. 또는 int형으로 숫자를 입력받고 10으로 0이 될 때까지 나누어 나머지 값을 인덱스로 참조하여 배열을 증가시켜 주는 방법도 가능합니다.

 

코드

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
#include <cstdio>
 
using namespace std;
 
int main() {
 
    int a[9= { 0, };
    char line[8];
    scanf("%s"&line);
 
    int i = 0;
    while (line[i])
    {
        int x = line[i] - 48;
        if (x == 9)
            a[6]++;
        else
            a[x]++;
        i++;
    }
    
    a[6= (a[6+ 1/ 2;
 
    int m = 0;
    for (int i = 0; i < 10; i++)
    {
        if (a[i] > m)
            m = a[i];
    }
 
    printf("%d\n", m);
    
    return 0;
}

 

제출 결과

 

문제 출처

https://www.acmicpc.net/problem/1475

 

1475번: 방 번호

첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수 또는 0이다.

www.acmicpc.net