개발자 톡

연습문제 톡 [21년 재직자 대회 예선] 전광판

c언어 풀이 공유합니다~

등록일
2025-02-07 21:56:35
조회수
52
작성자
bumi95
#include <stdio.h>
#include <stdlib.h>


int num[10][7] = {
    {1, 1, 1, 1, 1, 1, 0}, // 0
    {0, 1, 1, 0, 0, 0, 0}, // 1
    {1, 1, 0, 1, 1, 0, 1}, // 2
    {1, 1, 1, 1, 0, 0, 1}, // 3
    {0, 1, 1, 0, 0, 1, 1}, // 4
    {1, 0, 1, 1, 0, 1, 1}, // 5
    {1, 0, 1, 1, 1, 1, 1}, // 6
    {1, 1, 1, 0, 0, 1, 0}, // 7
    {1, 1, 1, 1, 1, 1, 1}, // 8
    {1, 1, 1, 1, 0, 1, 1}  // 9
};


int cal(int a, int b)
{
    int mod_a, mod_b, sum = 0;
    while(a != 0 || b != 0) {
        
        mod_a = a % 10;
        a = a / 10;
        mod_b = b % 10;
        b = b / 10;


        if (a == 0 && mod_a == 0) {
            for (int i=0; i<7; i++)
                sum += num[mod_b][i];
        } else if (b == 0 && mod_b == 0) {
            for (int i=0; i<7; i++)
                sum += num[mod_a][i];
        } else {
            for (int i=0; i<7; i++)
                sum += abs(num[mod_b][i] - num[mod_a][i]);
        }
    }


    return sum;
}


int main(void)
{
    int T;


    int A, B;


    scanf("%d", &T);
    for (int i=0; i<T; i++) {
        scanf("%d %d", &A, &B);
        printf("%d\n", cal(A, B));
    }
    
    return 0;
}


전구가 켜져 있는 곳은 1, 꺼져 있는 곳은 0으로 판단해서 위에서부터 시계 방향, 마지막은 가운데 전구로 설정해서 숫자 별 2차원 배열을 만들었습니다.

#[21년_재직자_대회_예선]_전광판
#c

이 카테고리의 톡 더보기