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

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

by KASSID 2022. 1. 10.

๋ฌธ์ œ

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

 

์ž…๋ ฅ ์˜ˆ์‹œ

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๋งŒํผ ๋”ํ•ด์ค€๋‹ค.

 

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

 

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

 

 

๋Œ“๊ธ€