SWLUG/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์Šค์ฟจ (C)

[C] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์Šค์ฟจ_3์ฃผ์ฐจ ๋ฌธ์ œ 3: ์ง์ˆ˜์˜ ํ•ฉ

waterproof 2023. 7. 22. 00:24

[C] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์Šค์ฟจ_3์ฃผ์ฐจ ๋ฌธ์ œ 3: ์ง์ˆ˜์˜ ํ•ฉ

 

 

 


[1] ๋ฌธ์ œ

 

๋ฌธ์ œ ์„ค๋ช…

์ •์ˆ˜ n์ด ์ฃผ์–ด์งˆ ๋•Œ, n์ดํ•˜์˜ ์ง์ˆ˜๋ฅผ ๋ชจ๋‘ ๋”ํ•œ ๊ฐ’์„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.

 

์ œํ•œ์‚ฌํ•ญ

  • 0 < n ≤ 1000

 

์ž…์ถœ๋ ฅ ์˜ˆ

n result
10 30
4 6

 

์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

์ž…์ถœ๋ ฅ ์˜ˆ #1

  • n์ด 10์ด๋ฏ€๋กœ 2 + 4 + 6 + 8 + 10 = 30์„ return ํ•ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #2

  • n์ด 4์ด๋ฏ€๋กœ 2 + 4 = 6์„ return ํ•ฉ๋‹ˆ๋‹ค.

 

 

 


[2] ์ •๋‹ต

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
 
int solution(int n) {
    int answer;
    
    if (n < 2)
        answer = 0;
    
    else if (n >= 2)
        if (n % 2 == 0)
            answer = n/2 * (n/2 + 1);  
        else
            answer = (n-1)/2 * ((n-1)/2 + 1);
    
    return answer;
}
cs

 

 

>> ๊ทผ๋ฐ ์ถœ์ œ ์˜๋„๋Š” ๋‚ด๊ฐ€ ์ œ์ถœํ•œ ์ฝ”๋“œ๊ฐ€ ์•„๋‹Œ ๊ฒƒ ๊ฐ™๋‹ค...

์™œ๋ƒํ•˜๋ฉด...

 

 

๋‚ด๊ฐ€ ์ œ์ถœํ•œ ์ฝ”๋“œ๋Š” "๋ฐ˜๋ณต๋ฌธ ์•ˆ ์กฐ๊ฑด๋ฌธ"์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

์ผ๋‹จ์€ ๋‚ด ํ’€์ด ๊ณผ์ •์„ ์ ์–ด๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค.

 

 


[3] ํ•ด์„

 

์ฝ”๋“œ๋ฅผ ํ•œ ์ค„์”ฉ ํ•ด์„ํ•ด๋ณด๊ฒ ๋‹ค:

1. #include <stdio.h>: ํ‘œ์ค€ ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ์„ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํฌํ•จํ•œ๋‹ค.

2. #include <stdbool.h>: C ์–ธ์–ด์—์„œ ๋ถˆ๋ฆฌ์–ธ ์ž๋ฃŒํ˜•์ธ bool๊ณผ ๊ด€๋ จ๋œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํฌํ•จํ•œ๋‹ค.
3. #include <stdlib.h>: C ์–ธ์–ด์˜ ๊ธฐ๋ณธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ค‘ ํ•˜๋‚˜๋กœ, ๋ฉ”๋ชจ๋ฆฌ ๋™์  ํ• ๋‹น๊ณผ ๊ด€๋ จ๋œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.

 

-

 

4. int solution(int n): solution์ด๋ผ๋Š” ์ด๋ฆ„์˜ ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•œ๋‹ค. ์ด ํ•จ์ˆ˜๋Š” ํ•˜๋‚˜์˜ ์ •์ˆ˜ n์„ ์ž…๋ ฅ์œผ๋กœ ๋ฐ›๊ณ , ์ •์ˆ˜ ํƒ€์ž…์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

5. int answer;: ์ •์ˆ˜ ํƒ€์ž…์˜ ๋ณ€์ˆ˜ answer๋ฅผ ์„ ์–ธํ•œ๋‹ค. ์ด ๋ณ€์ˆ˜๋Š” ํ•จ์ˆ˜์˜ ๋ฐ˜ํ™˜๊ฐ’์œผ๋กœ ์‚ฌ์šฉ๋  ๊ฒƒ์ด๋‹ค.

6. if (n < 2): ๋งŒ์•ฝ n์ด 2๋ณด๋‹ค ์ž‘๋‹ค๋ฉด (0 ๋˜๋Š” 1์ผ ๊ฒฝ์šฐ),

  • answer = 0;: answer์— 0์„ ๋Œ€์ž…ํ•œ๋‹ค.(์ดํ›„์— 0์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.)

7. else if (n >= 2): n์ด 2 ์ด์ƒ์ธ ๊ฒฝ์šฐ์— ํ•ด๋‹นํ•˜๋Š” ์กฐ๊ฑด๋ฌธ์ด๋‹ค.

8. if (n % 2 == 0): ๋งŒ์•ฝ n์ด ์ง์ˆ˜๋ผ๋ฉด (n์„ 2๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๊ฐ€ 0์ธ ๊ฒฝ์šฐ),

  • answer = n/2 * (n/2 + 1);: answer์— n/2์™€ (n/2 + 1)์˜ ๊ณฑ์„ ๋Œ€์ž…ํ•œ๋‹ค.

9. else: n์ด ํ™€์ˆ˜์ธ ๊ฒฝ์šฐ,

  • answer = (n-1)/2 * ((n-1)/2 + 1);: answer์— (n-1)/2์™€ ((n-1)/2 + 1)์˜ ๊ณฑ์„ ๋Œ€์ž…ํ•œ๋‹ค.

10. return answer;: ๊ณ„์‚ฐ๋œ answer ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

 

 

 


[4] ํ’€์ด ๋ฐ ์˜ค๋‹ต

 

"๋ฐ˜๋ณต๋ฌธ ์•ˆ ์กฐ๊ฑด๋ฌธ"์ด๋ผ๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ์‚ด๋ ค ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ ค๊ณ  ํ–ˆ์œผ๋‚˜,

๊ทธ๋ ‡๊ฒŒ ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋Š” ์‹คํ–‰์‹œ๊ฐ„์ด 10์ดˆ๋ฅผ ๋„˜์–ด๊ฐ€์„œ ๋‹ต์œผ๋กœ ์ธ์ •๋˜์ง€ ์•Š์•˜๋‹ค.

(์ง€๊ธˆ ์ƒ๊ฐํ•ด๋ณด๋‹ˆ ๋‹จ์ˆœํžˆ ์ฝ”๋“œ๊ฐ€ ๋ณต์žกํ•ด์„œ 10์ดˆ๋ฅผ ๋„˜์–ด๊ฐ€๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ฝ”๋“œ์— ์˜ค๋ฅ˜๊ฐ€ ์žˆ์–ด์„œ ์‹คํ–‰์ด ๋ง‰ํžŒ ๋ถ€๋ถ„์ด ์žˆ๋Š” ๊ฒƒ ๊ฐ™๊ธฐ๋„ ํ•œ๋ฐ... ์ž์„ธํžˆ ์•Œ์•„๋ด์•ผ ๊ฒ ๋‹ค.)

 

 

# ์ฒซ ๋ฒˆ์งธ ์‹œ๋„

 

์ œ์ถœ ์ฝ”๋“œ

 

๊ฒฐ๊ณผ

 

 

>> if ๋’ค์— ์‹์„ ์ ์„ ๋•Œ ์†Œ๊ด„ํ˜ธ ์•ˆ์— ๋„ฃ์–ด์•ผ ํ•œ๋‹ค. ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค.

 

# ๋‘ ๋ฒˆ์งธ ์‹œ๋„

 

์ œ์ถœ ์ฝ”๋“œ

 

๊ฒฐ๊ณผ

 

์ฒ˜์Œ์—๋Š” ์ฝ”๋“œ๊ฐ€ ๋ณต์žกํ•ด์„œ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์˜ค๋ž˜๊ฑธ๋ฆฌ๋Š” ์ค„ ์•Œ๊ณ  ์„ธ ๋ฒˆ์งธ ์‹œ๋„์—์„œ ์ฝ”๋“œ๋ฅผ ๋” ๋‹จ์ˆœํ™”์‹œํ‚ค๊ธฐ๋งŒ ํ–ˆ๋Š”๋ฐ,

์ง€๊ธˆ ๋ณด๋‹ˆ ์ฝ”๋“œ์— ์˜ค๋ฅ˜๊ฐ€ ์žˆ์–ด์„œ ์ค‘๊ฐ„์— ๊ฑธ๋ฆฌ๋Š” ๋ถ€๋ถ„์ด ์žˆ์–ด์„œ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ ธ๋˜ ๊ฒƒ ๊ฐ™๋‹ค.

 

 

# ์„ธ ๋ฒˆ์งธ ์‹œ๋„

 

์ œ์ถœ ์ฝ”๋“œ

 

์‹คํ–‰ ๊ฒฐ๊ณผ

 

 

# ๋„ค ๋ฒˆ์งธ ์‹œ๋„ - ์ •๋‹ต!

 

์ œ์ถœ ์ฝ”๋“œ

 

์‹คํ–‰ ๊ฒฐ๊ณผ

 

2 + 4 + 6 + 8 + ... ์˜ ํ˜•์‹์œผ๋กœ ๋”ํ•ด์ง€๋Š” ๊ฒƒ์ด๋‹ˆ 2(1 + 2 + 3 + 4 + ... ) ๋กœ ๋ฐ”๊พธ๋ฉด ๋“ฑ์ฐจ์ˆ˜์—ด์˜ ํ•ฉ ๊ณต์‹์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์–ด์„œ

๋ฐ˜๋ณต๋ฌธ ์‚ฌ์šฉ์„ ํฌ๊ธฐํ•˜๊ณ  ๊ณ„์‚ฐ์‹์„ ์‚ฌ์šฉํ•ด์„œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ์ถœ์ œ ์˜๋„์™€ ๋‹ค๋ฅธ ๋ฐฉํ–ฅ์œผ๋กœ ํ’€์ดํ•œ ๊ฒƒ ๊ฐ™์•„์„œ ๋ฐ˜๋ณต๋ฌธ๊ณผ ์กฐ๊ฑด๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ •๋‹ต์„ ๋งž์ถœ ์ˆ˜ ์žˆ๋„๋ก ์‹œ๋„ํ•ด๋ณด์•˜๋‹ค.

 

# ๋‹ค์„ฏ ๋ฒˆ์งธ ์‹œ๋„

 

 

 

...์—ฌ๊ธฐ์„œ ๋” ์ด์ƒ ์ฝ”๋“œ๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ˆ˜์ •ํ•  ๋ฐฉ๋ฒ•์ด ์ƒ๊ฐ๋‚˜์ง€ ์•Š์•„์„œ

๋ฌด์—‡์ด ๋ฌธ์ œ์ธ์ง€ Chat GPT ๋ฅผ ํ†ตํ•ด ์•Œ์•„๋ณด์•˜๋‹ค.

 

 

ํ•ด๋‹น ์ฝ”๋“œ์—๋Š” ๋…ผ๋ฆฌ์ ์ธ ์˜ค๋ฅ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. solution ํ•จ์ˆ˜๊ฐ€ ์˜๋„ํ•˜๋Š” ๊ฒƒ์€ ์ฃผ์–ด์ง„ ์ˆ˜ n ์ดํ•˜์˜ ๋ชจ๋“  ์ง์ˆ˜๋ฅผ ๋”ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ฝ”๋“œ์—๋Š” ๋ช‡ ๊ฐ€์ง€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

1. answer ๋ณ€์ˆ˜๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
2. answer ๋ณ€์ˆ˜์— ๊ฐ’์„ ๋”ํ•˜๊ธฐ ์ „์— ์ดˆ๊ธฐํ™”ํ•˜์ง€ ์•Š์•„ ๊ฒฐ๊ณผ๊ฐ€ ์˜ˆ์ƒ๋Œ€๋กœ ๋‚˜์˜ค์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
3. n์ด ์ง์ˆ˜์ผ ๋•Œ๋งŒ ์ง์ˆ˜๋ฅผ ๋”ํ•˜๊ณ , ํ™€์ˆ˜์ผ ๋•Œ๋Š” n-1๊นŒ์ง€์˜ ์ง์ˆ˜๋ฅผ ๋”ํ•˜๋ ค๊ณ  ํ•˜์ง€๋งŒ, ๋‘ ๊ฒฝ์šฐ ๋ชจ๋‘ ์ž˜๋ชป๋œ ๋ฐฉ์‹์œผ๋กœ ์ง์ˆ˜๋ฅผ ๋”ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋จผ์ €, answer ๋ณ€์ˆ˜๋ฅผ ์ดˆ๊ธฐํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋”ํ•˜๋Š” ๊ณผ์ •์—์„œ ์“ฐ๋ ˆ๊ธฐ ๊ฐ’์ด ํฌํ•จ๋˜์–ด ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. int answer = 0;์œผ๋กœ ๋ณ€์ˆ˜๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

๋‘ ๋ฒˆ์งธ๋กœ, ์ฃผ์–ด์ง„ ์ˆ˜ n ์ดํ•˜์˜ ๋ชจ๋“  ์ง์ˆ˜๋ฅผ ๋”ํ•ด์•ผ ํ•˜๋ฏ€๋กœ, if-else ๊ตฌ๋ฌธ์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ฐ”๊พธ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ถˆํ•„์š”ํ•œ ์ค‘์ฒฉ ๊ตฌ์กฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ˆ˜์ •๋œ ์ฝ”๋“œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
 
int solution(int n) {
    int answer = 0// ๋ณ€์ˆ˜ ์ดˆ๊ธฐํ™”
 
    if (n < 2)
        answer = 0;
    else {
        for (int i = 2; i <= n; i += 2) { // 2๋ถ€ํ„ฐ n๊นŒ์ง€ ์ง์ˆ˜๋ฅผ ๋”ํ•จ
            answer += i;
        }
    }
 
    return answer;
}
cs


์ด์ œ ํ•จ์ˆ˜๋Š” ์ฃผ์–ด์ง„ ์ˆ˜ n ์ดํ•˜์˜ ๋ชจ๋“  ์ง์ˆ˜๋ฅผ ์ •ํ™•ํ•˜๊ฒŒ ๋”ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด n = 7์ผ ๋•Œ, solution(7)์€ 2 + 4 + 6 = 12๋ฅผ ๋ฐ˜ํ™˜ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.


์ถœ์ฒ˜: ์ฑ— GPT

 

 

 

๊ทธ๋ ‡๋‹ค๊ณ  ํ•œ๋‹ค!

๋‚˜๋Š” ํ™€์ˆ˜์˜ ๊ฒฝ์šฐ์™€ ์ง์ˆ˜์˜ ๊ฒฝ์šฐ์˜ ๊ณ„์‚ฐ์‹์ด ๋‹ค๋ฅด๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ, ๊ฐ™์•˜๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋ณ€์ˆ˜๋ฅผ ์ดˆ๊ธฐํ™”๋ฅผ ํ•ด์ฃผ๋Š” ๊ฒƒ์ด ์ข‹๋‹ค๊ณ  ํ•œ๋‹ค.

 


[5] ์ถ”๊ฐ€ ํ•™์Šต

 

๋ฐ˜๋ณต๋ฌธ๊ณผ ์กฐ๊ฑด๋ฌธ์„ ์‚ฌ์šฉํ•˜์˜€๋˜ ๋ฌธ์ œ ํ’€์ด๋ฅผ ๊ฐ€์ ธ์™€ ๋ดค๋‹ค.

โœ๏ธ https://exponent.tistory.com/63

 

[C] C study mini project: ํ•จ์ˆ˜ - ์†Œ์ˆ˜ ์ถœ๋ ฅ ํ”„๋กœ๊ทธ๋žจ

[1] ๋ฌธ์ œ ๋ฌธ์ œ ์„ค๋ช… ์†Œ์ˆ˜์ธ์ง€๋ฅผ ๊ฒ€์‚ฌํ•˜๋Š” ํ•จ์ˆ˜ check_prime()๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ 1๋ถ€ํ„ฐ 100์‚ฌ์ด์— ์กด์žฌํ•˜๋Š” ์†Œ์ˆ˜๋“ค์„ ๋ชจ๋‘ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ด๋ณด์ž. ์ž…์ถœ๋ ฅ ์˜ˆ์‹œ [2] ์ •๋‹ต HTML ์‚ฝ์ž… ๋ฏธ๋ฆฌ๋ณด๊ธฐํ•  ์ˆ˜ ์—†

exponent.tistory.com

 

 

 


[6] ๋Š๋‚€ ์ 

 

์–ด๋ ต๋‹ค... ์–ด๋ ค์›Œ์š”... ์–ด๋–ค ๋ถ€๋ถ„์ด ์–ด๋ ค์› ๋ƒ๋ฉด,

n์ด ์ง์ˆ˜ / ํ™€์ˆ˜์ธ ๊ฒฝ์šฐ์˜ ์‹์ด ์–ด๋–ป๊ฒŒ ๊ฐ™์„ ์ˆ˜ ์žˆ๋Š”์ง€ ์ดํ•ดํ•˜๋Š” ๊ฒŒ ์–ด๋ ค์› ๋‹ค.

์ฑ— GPT ํ•œํ…Œ๋„ ๋ฌผ์–ด๋ณด๊ณ  ๋™๊ธฐ๋‹˜์—๊ฒŒ๋„ ๋ฌผ์–ด๋ดค๋‹ค...

 

๊ทธ๋ž˜๋„ ์ถ”๊ฐ€ ํ•™์Šต์— ๊ฑธ์–ด๋†“์€ ๋งํฌ์—์„œ ๊ณต๋ถ€ํ–ˆ๋˜ ๋‚ด์šฉ์ด ๋˜ ๋‚˜์™€์„œ

for (i = 2; i < num; i++) {
        if (num % i == 0)

์ด ๋ถ€๋ถ„์€ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ์•„์˜ˆ ์ „๋ถ€ ๋‹ค ์ž‘์„ฑ์„ ๋ชปํ•œ ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค...!

 

์ด๋ ‡๊ฒŒ ์กฐ๊ธˆ์”ฉ ์„ฑ์žฅํ•˜๋Š” ๊ฑฐ๊ฒ ์ง€!

 

๋ฌธ์ œ๋ฅผ ํ’€๊ณ  ๋‚œ ๋’ค์˜ ๋ฟŒ๋“ฏํ•จ