๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿฆ„ | ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต/๊ทธ ์™ธ

์—ดํ˜ˆ C_ ๋ฌธ์ž์—ด์ฒ˜๋ฆฌ

by KASSID 2022. 1. 10.

๋ชฉ์ฐจ

    728x90

    ๋ฌธ์ œ

    ๋ฌธ์ž์—ด์„ ์ž…๋ ฅ๋ฐ›์•˜์„ ๋•Œ ๊ทธ ์•ˆ์— ์กด์žฌํ•˜๋Š” ์ˆซ์ž์˜ ์ด ํ•ฉ์„ ๊ณ„์‚ฐํ•˜๊ธฐ

     

    ์ž…๋ ฅ ์˜ˆ์‹œ

    A1h2#9

    ์ถœ๋ ฅ ์˜ˆ์‹œ

    12

    ์ฝ”๋“œ

    #include <stdio.h>
    #include <string.h>
    
    int SSum(char str) {
    static int diff = 1 - '1';
    return str + diff;
    }
    
    int main() {
    char str[50];
    int len;
    int sum = 0;
    
    printf("๋ฌธ์ž์—ด ์ž…๋ ฅ: ");
    fgets(str, sizeof(str), stdin);
    len = strlen(str);
    
    for (int i = 0; i < len; i++)
    {
    if (str[i] >= '1' && str[i] <= '9')
    sum += SSum(str[i]);
    }
    printf("์ดํ•ฉ: %d\n", sum);
    
    return 0;
    }

     

    ์ฝ”๋ฉ˜ํŠธ

    ๋ฌธ์ž์—ด ๋‚ด์—์„œ ์ˆซ์ž๋ฅผ ์ฐพ๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ

    ์•„์Šคํ‚ค์ฝ”๋“œ๋ฅผ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

     

    ๋น„๊ต์—ฐ์‚ฐ์ž๋ฅผ ์ด์šฉํ•ด ๋ฌธ์ž '1'~'9' ๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๋‹ค๊ณ  ์กฐ๊ฑด์„ ๊ฑธ์—ˆ์„ ๋•Œ

    True๋ผ๋ฉด ๋ฌธ์ž๋กœ 1~9 ์ธ ๊ฒƒ์ด๋‹ค.

     

    ์ด์–ด์„œ, '1'์˜ ์•„์Šคํ‚ค์ฝ”๋“œ๋Š” 49๋ฒˆ์ด๋‹ค.

    1-'1' ์˜ ์—ฐ์‚ฐ์€ -48์ด๋‹ค. (1-'1' == 1 - 49)

    2-'2' ์˜ ์—ฐ์‚ฐ๋„ -48์ด๋‹ค. (2-'2' == 2- 50)

     

     

    ์ฆ‰, n์ด ํ•œ์ž๋ฆฌ ์ˆซ์ž์ผ ๋•Œ

    ์ˆซ์ž n๊ณผ ๋ฌธ์ž 'n'์˜ ์ฐจ๋Š” ํ•ญ์ƒ ์ผ์ •ํ•˜๋‹ค.

     

    ์ด๋ฅผ '์ฐจ'๋ฅผ diff๋ผ๋Š” ๋ณ€์ˆ˜์— ์ €์žฅํ•˜์—ฌ

    ๋ฌธ์ž'1'~'9'์ธ ๊ฒฝ์šฐ diff๋งŒํผ ๋”ํ•ด์ค€๋‹ค.

     

    ๊ทธ ๊ฒฐ๊ณผ ๋ฌธ์ž๊ฐ€ ์ˆซ์ž๋กœ ๋ณ€ํ™˜์ด ๋œ๋‹ค.

     

    ์ด๋ฅผ ๋ชจ๋‘ ๋”ํ•˜์—ฌ ๊ฐ’์„ ์–ป์–ด๋‚ด์—ˆ๋‹ค.

     

     

    ๋Œ“๊ธ€