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

[C] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์Šค์ฟจ_2์ฃผ์ฐจ ๋ฌธ์ œ4: ๋‚˜๋จธ์ง€๊ฐ€ 1์ด ๋˜๋Š” ์ˆ˜ ์ฐพ๊ธฐ

waterproof 2023. 7. 13. 02:44

[C] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์Šค์ฟจ_2์ฃผ์ฐจ 4๋ฒˆ: ๋‚˜๋จธ์ง€๊ฐ€ 1์ด ๋˜๋Š” ์ˆ˜ ์ฐพ๊ธฐ

 
 
 


[1] ๋ฌธ์ œ

 

๋ฌธ์ œ ์„ค๋ช…

์ž์—ฐ์ˆ˜ n์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. n์„ x๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๊ฐ€ 1์ด ๋˜๋„๋ก ํ•˜๋Š” ๊ฐ€์žฅ ์ž‘์€ ์ž์—ฐ์ˆ˜ x๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”. ๋‹ต์ด ํ•ญ์ƒ ์กด์žฌํ•จ์€ ์ฆ๋ช…๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
 

์ œํ•œ์‚ฌํ•ญ

  • 3 ≤ n ≤ 1,000,000

 

์ž…์ถœ๋ ฅ ์˜ˆ

n result
10 3
12 11

 

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

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

  • 10์„ 3์œผ๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๊ฐ€ 1์ด๊ณ , 3๋ณด๋‹ค ์ž‘์€ ์ž์—ฐ์ˆ˜ ์ค‘์—์„œ ๋ฌธ์ œ์˜ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ์ˆ˜๊ฐ€ ์—†์œผ๋ฏ€๋กœ, 3์„ return ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

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

  • 12๋ฅผ 11๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๊ฐ€ 1์ด๊ณ , 11๋ณด๋‹ค ์ž‘์€ ์ž์—ฐ์ˆ˜ ์ค‘์—์„œ ๋ฌธ์ œ์˜ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ์ˆ˜๊ฐ€ ์—†์œผ๋ฏ€๋กœ, 11์„ return ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 
 
 


[2] ์ •๋‹ต

 

1
2
3
4
5
6
7
8
9
10
11
#includeย <stdio.h>
ย 
unsignedย intย solution(unsignedย intย n)ย {
ย ย ย ย unsignedย intย xย =ย 2;ย ย //ย ๊ฐ€์žฅย ์ž‘์€ย ์ž์—ฐ์ˆ˜์ธย 2๋ถ€ํ„ฐย ์‹œ์ž‘
ย 
ย ย ย ย whileย (nย %ย xย !=ย 1)ย {
ย ย ย ย ย ย ย ย x++;
ย ย ย ย }
ย 
ย ย ย ย returnย x;
}
cs

 
 
 


[3] ํ•ด์„

 
 ์ฝ”๋“œ๋Š” ์ž์—ฐ์ˆ˜ n์„ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋ฐ›์•„์„œ, n์„ x๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๊ฐ€ 1์ด ๋˜๋„๋ก ํ•˜๋Š” ๊ฐ€์žฅ ์ž‘์€ ์ž์—ฐ์ˆ˜ x๋ฅผ ์ฐพ๋Š” ํ•จ์ˆ˜์ธ solution์„ ๊ตฌํ˜„ํ•œ ๊ฒƒ์ด๋‹ค. ์ฝ”๋“œ๋ฅผ ํ•˜๋‚˜์”ฉ ํ•ด์„ํ•ด๋ณด๊ฒ ๋‹ค:
 

1
2
3
4
5
6
7
8
9
10
11
#includeย <stdio.h>
ย 
unsignedย intย solution(unsignedย intย n)ย {
ย ย ย ย unsignedย intย xย =ย 2;ย ย //ย ๊ฐ€์žฅย ์ž‘์€ย ์ž์—ฐ์ˆ˜์ธย 2๋ถ€ํ„ฐย ์‹œ์ž‘
ย 
ย ย ย ย whileย (nย %ย xย !=ย 1)ย {
ย ย ย ย ย ย ย ย x++;
ย ย ย ย }
ย 
ย ย ย ย returnย x;
}
cs

 

  • unsigned int solution(unsigned int n): solution ํ•จ์ˆ˜๋Š” unsigned int ํ˜•์‹์˜ ์ž์—ฐ์ˆ˜ n์„ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋ฐ›๊ณ , unsigned int ํ˜•์‹์˜ ์ž์—ฐ์ˆ˜ x๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
  • unsigned int x = 2;: ๋ณ€์ˆ˜ x๋ฅผ 2๋กœ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค. ์ด๋Š” ๊ฐ€์žฅ ์ž‘์€ ์ž์—ฐ์ˆ˜์ธ 2๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.
  • while (n % x != 1) { x++; }: n์„ x๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๊ฐ€ 1์ด ๋˜๋Š” x๋ฅผ ์ฐพ์„ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•œ๋‹ค. x๋ฅผ 1์”ฉ ์ฆ๊ฐ€์‹œํ‚ค๋ฉด์„œ ๊ฒ€์‚ฌ๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค.
  • return x;: x๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ์ด๋Š” n์„ x๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๊ฐ€ 1์ด ๋˜๋„๋ก ํ•˜๋Š” ๊ฐ€์žฅ ์ž‘์€ ์ž์—ฐ์ˆ˜ x๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

 
์ด ์ฝ”๋“œ๋Š” ์ฃผ์–ด์ง„ ์ž์—ฐ์ˆ˜ n์— ๋Œ€ํ•ด x๋ฅผ 2๋ถ€ํ„ฐ ์ฆ๊ฐ€์‹œํ‚ค๋ฉด์„œ n์„ x๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๊ฐ€ 1์ด ๋˜๋Š” x๋ฅผ ์ฐพ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ตฌํ˜„ํ•œ ๊ฒƒ์ด๋‹ค.
 
 
 


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

 
โœ”๏ธ ๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ
 

1
2
3
4
5
6
7
8
9
10
11
12
13
#includeย <stdio.h>
ย 
unsignedย intย solution(unsignedย intย n,ย unsignedย intย x)ย {
ย ย ย ย ifย (nย %ย xย ==ย 1)ย {
ย ย ย ย ย ย ย ย ifย (nย <ย x)ย {
ย ย ย ย ย ย ย ย ย ย ย ย returnย x;
ย ย ย ย ย ย ย ย }ย elseย {
ย ย ย ย ย ย ย ย ย ย ย ย returnย n;
ย ย ย ย ย ย ย ย }
ย ย ย ย }ย elseย {
ย ย ย ย ย ย ย ย returnย n;
ย ย ย ย }
}
cs

 
๋‚ด ์ฝ”๋“œ๋Š” ์•„์ฃผ ์ด์ƒํ•œ๋ฐ ์–ด๋””์„œ๋ถ€ํ„ฐ ์ž˜๋ชป๋œ ๊ฑธ ์งš์–ด์•ผ ํ•  ์ง€ ๋ชจ๋ฅด๊ฒ ๋‹ค...

์—ฌ๊ธฐ์— ๋ฐฐ์—ด์„ ์ถ”๊ฐ€ํ•ด์„œ ์ตœ์†Ÿ๊ฐ’์„ ๊ตฌํ•ด๋ณด๊ณ  ์‹ถ์—ˆ๋Š”๋ฐ ๋ฐฐ์—ด์„ ์ž˜ ํ™œ์šฉํ•˜์ง€ ๋ชปํ•œ๋‹ค. ๊ตฌ๊ธ€๋ง์„ ์—ด์‹ฌํžˆ ํ•ด๋ด๋„ ์ด ์ฝ”๋“œ์— ๋ฐฐ์—ด์„ ๋…น์—ฌ๋‚ผ ๋ฐฉ๋ฒ•์„ ๋ชป ์ฐพ์•˜๋‹ค.

๋ฐ˜๋ณต๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ตœ์†Ÿ๊ฐ’์„ ๊ตฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ˆ˜์—…์‹œ๊ฐ„์— ๋ฐฐ์› ๋˜ ๊ฒƒ ๊ฐ™๊ธด ํ•œ๋ฐ ์ •ํ™•ํžˆ ์–ด๋Š ๋‹จ์›์ด์—ˆ๋Š”์ง€ ๊ธฐ์–ต์ด ์•ˆ๋‚œ๋‹ค.
 
 
 
 


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

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


[6] ๋Š๋‚€ ์ 

 
์–ด๋ ต๋‹ค...! ์•„๊นŒ๋„ ์ด์•ผ๊ธฐํ–ˆ์ง€๋งŒ ๋ฐ˜๋ณต๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ตœ์†Ÿ๊ฐ’์„ ๊ตฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ˆ˜์—…์‹œ๊ฐ„์— ๋ฐฐ์› ๋˜ ๊ฒƒ ๊ฐ™๊ธด ํ•œ๋ฐ ์ •ํ™•ํžˆ ์–ด๋Š ๋‹จ์›์ด์—ˆ๋Š”์ง€ ๊ธฐ์–ต์ด ์•ˆ๋‚œ๋‹ค... ์ด๋ฒˆ ์—ฌ๋ฆ„ ๋ฐฉํ•™์— C์–ธ์–ด๋ฅผ ์ „์ฒด์ ์œผ๋กœ ๋ณต์Šตํ•˜๊ธฐ๋กœ ํ–ˆ์œผ๋‹ˆ ๊ณง ๊ทธ ๋ถ€๋ถ„์ด ์–ด๋””์—ˆ๋Š”์ง€ ์•Œ๊ฒŒ ๋  ๊ฒƒ ๊ฐ™๋‹ค!
 
๊ทธ๋ฆฌ๊ณ  ์•„๋Š” ๊ฒŒ ์—†์œผ๋‹ˆ๊นŒ ์˜ค๋‹ต ๋…ธํŠธ ์ž‘์„ฑ๋„ ๋ชป ํ•˜๊ฒ ๋‹ค...

๋” ์ž˜ํ•˜๊ณ  ์‹ถ๋‹ค!!!!!!!!!

์ถœ์ฒ˜: ์นด์นด์˜คํ†ก ์ด๋ชจํ‹ฐ์ฝ˜, ๋กœ์ž‰ ์ž‘๊ฐ€๋‹˜