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

[C] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์Šค์ฟจ_2์ฃผ์ฐจ ๋ฌธ์ œ1: ๋‘ ์ˆ˜์˜ ๋‚˜๋ˆ—์…ˆ

waterproof 2023. 7. 12. 23:21

 

 

 


[1] ๋ฌธ์ œ

 

๋ฌธ์ œ ์„ค๋ช…

์ •์ˆ˜ num1๊ณผ num2๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, num1์„ num2๋กœ ๋‚˜๋ˆˆ ๊ฐ’์— 1,000์„ ๊ณฑํ•œ ํ›„ ์ •์ˆ˜ ๋ถ€๋ถ„์„ return ํ•˜๋„๋ก soltuion ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

 

์ œํ•œ์‚ฌํ•ญ

  • 0 < num1 ≤ 100
  • 0 < num2 ≤ 100

 

์ž…์ถœ๋ ฅ ์˜ˆ

num1 num2 result
3 2 1500
7 3 2333
1 16 62

 

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

 

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

  • num1์ด 3, num2๊ฐ€ 2์ด๋ฏ€๋กœ 3 / 2 = 1.5์— 1,000์„ ๊ณฑํ•˜๋ฉด 1500์ด ๋ฉ๋‹ˆ๋‹ค.

 

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

  • num1์ด 7, num2๊ฐ€ 3์ด๋ฏ€๋กœ 7 / 3 = 2.33333...์— 1,000์„ ๊ณฑํ•˜๋ฉด 2333.3333.... ์ด ๋˜๋ฉฐ, ์ •์ˆ˜ ๋ถ€๋ถ„์€ 2333์ž…๋‹ˆ๋‹ค.

 

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

  • num1์ด 1, num2๊ฐ€ 16์ด๋ฏ€๋กœ 1 / 16 = 0.0625์— 1,000์„ ๊ณฑํ•˜๋ฉด 62.5๊ฐ€ ๋˜๋ฉฐ, ์ •์ˆ˜ ๋ถ€๋ถ„์€ 62์ž…๋‹ˆ๋‹ค.

 

 

 


[2] ์ •๋‹ต

 

1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
 
int solution(int num1, int num2) {
    
    float result = (float)num1 / num2 * 1000;
    int answer = (int)result;
    
    return answer;
}
cs

 

 

 

 


[3] ํ•ด์„

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
 
int solution(int num1, int num2) {
    
    // num1์„ num2๋กœ ๋‚˜๋ˆˆ ๊ฒฐ๊ณผ์— 1000์„ ๊ณฑํ•œ ๊ฐ’์„ ์‹ค์ˆ˜ํ˜• ๋ณ€์ˆ˜ result์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
    float result = (float)num1 / num2 * 1000;
    
    // result๋ฅผ ์ •์ˆ˜ํ˜•์œผ๋กœ ํ˜•๋ณ€ํ™˜ํ•˜์—ฌ ์†Œ์ˆ˜์  ์ดํ•˜๋ฅผ ๋ฒ„๋ฆฌ๊ณ  ์ •์ˆ˜ ๊ฐ’์œผ๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
    int answer = (int)result;
    
    // ๊ฒฐ๊ณผ์ธ answer๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
    return answer;
}
cs

 

์ด ์ฝ”๋“œ๋Š” C ์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ solution์ด๋ผ๋Š” ํ•จ์ˆ˜๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ๋‹ค. ์ด ํ•จ์ˆ˜๋Š” ๋‘ ๊ฐœ์˜ ์ •์ˆ˜ num1๊ณผ num2๋ฅผ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋ฐ›์•„๋“ค์ธ๋‹ค.

ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ๋‹ค:

 

  1. float ํ˜•์‹์˜ ๋ณ€์ˆ˜ result๋ฅผ ์„ ์–ธํ•˜๊ณ , num1์„ num2๋กœ ๋‚˜๋ˆˆ ํ›„์— 1000์„ ๊ณฑํ•œ ๊ฐ’์„ ์ €์žฅํ•œ๋‹ค. ์ด ๋•Œ, num1๊ณผ num2๋ฅผ float๋กœ ํ˜•๋ณ€ํ™˜ํ•˜์—ฌ ์ •ํ™•ํ•œ ๋‚˜๋ˆ—์…ˆ์ด ์ด๋ฃจ์–ด์ง€๋„๋ก ํ•œ๋‹ค.
  2. result๋ฅผ int ํ˜•์‹์œผ๋กœ ํ˜•๋ณ€ํ™˜ํ•˜์—ฌ answer๋ผ๋Š” ๋ณ€์ˆ˜์— ์ €์žฅํ•œ๋‹ค. ์ด๋กœ์จ answer๋Š” ์†Œ์ˆ˜์  ์ดํ•˜ ๋ถ€๋ถ„์ด ๋ฒ„๋ ค์ง„ ์ •์ˆ˜ ๊ฐ’์ด ๋œ๋‹ค.
  3. answer๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

 

์ด ํ•จ์ˆ˜๋Š” num1์„ num2๋กœ ๋‚˜๋ˆˆ ํ›„์— 1000์„ ๊ณฑํ•œ ๊ฐ’์˜ ์ •์ˆ˜ ๋ถ€๋ถ„์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. 

 

 

 


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

 

โœ”๏ธ C ์–ธ์–ด์—์„œ ๋‘ ๊ฐœ์˜ ์ •์ˆ˜๋ฅผ ๋‚˜๋ˆ„๋ฉด ๊ฒฐ๊ณผ๋Š” ์ •์ˆ˜๋กœ ๊ณ„์‚ฐ๋œ๋‹ค.

 

๋‚ด๊ฐ€ ์ฒ˜์Œ์— ์ผ๋˜ ์˜ค๋‹ต:

 

1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
 
int solution(int num1, int num2) {
    float i = 0;
    i = num1/num2 * 1000;
    int answer = 0;
    answer = (int)i;
    return answer;
}
cs

 

์ด ์ฝ”๋“œ์—์„œ i = num1/num2 * 1000; ๋ผ์ธ์€ num1์„ num2๋กœ ๋‚˜๋ˆˆ ๊ฐ’์„ ๊ณ„์‚ฐํ•˜๊ณ , ๊ทธ ๊ฒฐ๊ณผ์— 1000์„ ๊ณฑํ•˜์—ฌ i ๋ณ€์ˆ˜์— ์ €์žฅํ•œ๋‹ค.

 

๊ทธ๋Ÿฌ๋‚˜ C ์–ธ์–ด์—์„œ ๋‘ ๊ฐœ์˜ ์ •์ˆ˜๋ฅผ ๋‚˜๋ˆ„๋ฉด ๊ฒฐ๊ณผ๋Š” ์ •์ˆ˜๋กœ ๊ณ„์‚ฐ๋œ๋‹ค.

(๋‚˜๋Š” ๊ทธ ์‚ฌ์‹ค์„ ๋ชฐ๋ž๊ณ , i๋ฅผ float๋กœ ์„ ์–ธํ•ด์ฃผ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ •์ˆ˜๋ผ๋ฆฌ ๊ณ„์‚ฐํ•œ ๊ฐ’์ด์–ด๋„ ์†Œ์ˆ˜์  ์ดํ•˜๋ฅผ ๊ฐ€์ง€๋ฉด i์— ๋ฐ˜์˜์ด ๋  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.)

๋”ฐ๋ผ์„œ, num1์„ num2๋กœ ๋‚˜๋ˆ„๋Š” ๊ฒฝ์šฐ, ๊ฒฐ๊ณผ๊ฐ€ ์†Œ์ˆ˜์  ์ดํ•˜๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด ๋ถ€๋ถ„์ด ์ž˜๋ฆด ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, 5๋ฅผ 2๋กœ ๋‚˜๋ˆ„๋ฉด ๊ฒฐ๊ณผ๋Š” 2.5์ง€๋งŒ, ์ •์ˆ˜๋กœ ๊ณ„์‚ฐ๋˜๋ฏ€๋กœ 2๊ฐ€ ๋œ๋‹ค.

 

์ดํ›„ i ๊ฐ’์„ int๋กœ ํ˜•๋ณ€ํ™˜ํ•˜์—ฌ answer์— ์ €์žฅํ•œ๋‹ค. ์ด๋กœ ์ธํ•ด ์†Œ์ˆ˜์  ์ดํ•˜๋Š” ๋ฒ„๋ ค์ง€๊ณ , ์ •์ˆ˜ ๋ถ€๋ถ„๋งŒ ๋‚จ๊ฒŒ ๋œ๋‹ค.

๋”ฐ๋ผ์„œ, ์ด ์ฝ”๋“œ์—์„œ๋Š” ์†Œ์ˆ˜์  ์ดํ•˜ ๊ฐ’์„ ์ •ํ™•ํžˆ ๊ณ„์‚ฐํ•˜๊ณ  ์œ ์ง€ํ•˜๊ธฐ ์–ด๋ ค์šด ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค.

 

์›ํ•˜๋Š” ๊ฒฐ๊ณผ๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋‹ค:

 

1
2
float result = (float)num1 / num2 * 1000;
int answer = (int)result;
cs

 

์œ„์˜ ์ฝ”๋“œ๋Š” num1๊ณผ num2๋ฅผ ์‹ค์ˆ˜ํ˜•์œผ๋กœ ํ˜•๋ณ€ํ™˜ํ•˜์—ฌ ๋‚˜๋ˆ—์…ˆ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์‹ค์ˆ˜ํ˜• ๋ณ€์ˆ˜ result์— ์ €์žฅํ•œ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ result๋ฅผ ์ •์ˆ˜ํ˜•์œผ๋กœ ํ˜•๋ณ€ํ™˜ํ•˜์—ฌ answer์— ์ €์žฅํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•จ์œผ๋กœ์จ ์†Œ์ˆ˜์  ์ดํ•˜ ๊ฐ’์„ ์ •ํ™•ํžˆ ๊ณ„์‚ฐํ•˜๊ณ  ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

โœ”๏ธ ๋‚˜๋ˆ—์…ˆ ์—ฐ์‚ฐ์ž๊ฐ€ ํ—ท๊ฐˆ๋ฆฐ๋‹ค. ('/'์™€ '%'์˜ ๊ธฐ๋Šฅ์ด ํ—ท๊ฐˆ๋ฆฐ๋‹ค.)

 

 

 


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

 

C์–ธ์–ด ์—ฐ์‚ฐ์ž ๋ถ€๋ถ„์„ ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ํ‹ฐ์Šคํ† ๋ฆฌ์— ์˜ฌ๋ฆฌ๋ฉด ๋‹ค์‹œ ๋งํฌ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฒ ๋‹ค.

 

 

 

 


[6] ๋Š๋‚€ ์ 

 

1-1 ์ค‘๊ฐ„๊ณ ์‚ฌ ๋•Œ ์—ฐ์‚ฐ์ž๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ฌธ์ œ๊ฐ€ ๋‚˜์™”๋Š”๋ฐ ๊ทธ ๋•Œ๋„ ํ‹€๋ ธ๋˜ ๊ธฐ์–ต์ด ์žˆ๋‹ค. ๋‹ค์‹œ ๋ณต์Šตํ•˜๊ฒŒ ๋˜์–ด์„œ ๋‹คํ–‰์ด๋‹ค.