๐Ÿ•ธ Algorithm/๐Ÿ•ธ ์ž๋ฃŒ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜

[Java/Algorithm]์ˆœ์„œ๋„ flowchart

๋‰ด์ด NUEY 2024. 8. 20. 20:03
๋ฐ˜์‘ํ˜•

 

๋ฐ์ดํ„ฐ ์ž…/์ถœ๋ ฅ

Data

 

๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ

Data Process

 

๋‹ค๋ฅธ ๊ณณ์—์„œ ์ด๋ฃจ์–ด์ง„ ์ฒ˜๋ฆฌ

Predenfined process

 

์ œ์–ด๋ฌธ if๋ฌธ ๊ฐ’์€ ๊ฑฐ

Decision

 

for๋ฌธ ๊ฐ’์€ loop ์‹œ์ž‘๊ณผ ๋

Loop limit

 

์ œ์–ดํ๋ฆ„. ์„ .

Line

 

์™ธ๋ถ€ํ™˜๊ฒฝ. ํ”„๋กœ๊ทธ๋žจ ์‹œ์ž‘๊ณผ ์ข…๋ฃŒ.

Terminator


1๋ถ€ํ„ฐ ~n๊นŒ์ง€์˜ ํ•ฉ์„ ๊ตฌํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ˆœ์„œ๋„๋กœ ๊ทธ๋ ค๋ณด๋ฉด
์กฐ๊ฑด(ํŒ๋‹จ โ—‡ )์ด ์„ฑ๋ฆฝ๋˜๋Š” ๋™์•ˆ ์ฒ˜๋ฆฌ(๋ฃจํ”„๋ณธ๋ฌธ)์„ ๋ฐ˜๋ณตํ•˜์—ฌ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์„

๋ฐ˜๋ณต ๊ตฌ์กฐ
repetition
๋ฃจํ”„ Loop

 

๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. 

 ์ด ๋•Œ while๋ฌธ์€ ์‹คํ–‰ ์ „์— ๋ฐ˜๋ณต์„ ๊ณ„์†ํ•  ์ง€ ํŒ๋‹จํ•˜๋Š” ๊ฑธ '์‚ฌ์ „ ํŒ๋‹จ ๋ฐ˜๋ณต ๊ตฌ์กฐ' ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.


ํ•˜๋‚˜์˜ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ˜๋ณต๋ฌธ์€ while๋ณด๋‹ค for๋ฌธ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.


์—ฐ์Šต๋ฌธ์ œ ํ’€์–ด๋ณด๊ธฐ


๋ฌธ์ œ : 1๋ถ€ํ„ฐ 10๊นŒ์ง€์˜ ํ•ฉ์€ (1 + 10) * 5์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฐ€์šฐ์Šค์˜ ๋ง์…ˆ์ด๋ผ๋Š” ๋ฐฉ๋ฒ•์„ ์ด์šฉํ•˜์—ฌ 1๋ถ€ํ„ฐ n๊นŒ์ง€ ์ •์ˆ˜ ํ•ฉ์„ ๊ตฌํ•˜์‹œ์˜ค.

 

๊ฐ€์šฐ์Šค์˜ ๊ณต์‹

  • 1 ~ 10๊นŒ์ง€์˜ ํ•ฉ์„ ๊ตฌํ•  ๊ฒฝ์šฐ
  • 1 + 10 = 11
    2 + 9 =  11
    ...
    5 + 6 = 11
  • ๋ชจ๋‘ 11์ด๋ฏ€๋กœ ์ด๋ฅผ 5๋ฒˆ๋งŒ ๊ณฑํ•˜๋ฉด ์ •๋‹ต์ด๋‹ค.
  • ์ง์ˆ˜์ผ ๊ฒฝ์šฐ(n%2๊ฐ€ 0)์—๋Š” n/2๋งŒ ๊ณฑํ•ด์ฃผ๋ฉด๋˜๊ณ 
  • ํ™€์ˆ˜์ผ ๊ฒฝ์šฐ์— (n-1) /2๋ฅผ ๊ณฑํ•œ ํ›„
    (์ฒ˜์Œ๊ฐ’๊ณผ ์ค‘์•™๊ฐ’)/ 2๋ฅผ ๋”ํ•ด์ฃผ๋ฉด ๋  ๊ฒƒ ๊ฐ™๋‹ค.
  • ex) n์ด 9๋ผ๋ฉด
    9 % 2 != 0 ์ด๋‹ค.
    (1 + 9) * ((9-1) / 2) + ((1 + 9) /2) 

์ฑ…์˜ ์ •๋‹ต ์ฝ”๋“œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์Œ.
int sum = (n + 1) * (n / 2) + (n % 2 == 1 ? (n + 1) / 2 : 0); // ํ•ฉ

๋‚˜๋Š” ํ™€์ˆ˜์ผ ๊ฒฝ์šฐ 1+ n์— (n-1) /2๋ฅผ ๊ณฑํ•˜์˜€๋Š”๋ฐ
์–ด์ฐจํ”ผ ์ •์ˆ˜๋ผ ์†Œ์ˆซ๊ฐ’์ด ์—†์œผ๋ฏ€๋กœ (n + 1) * (n / 2)๋กœ ์จ์คฌ์–ด๋„ ๋์„ ๊ฒƒ ๊ฐ™๋‹ค.

ํ™€์ˆ˜์ผ ๊ฒฝ์šฐ n % 2 == 1
์—  (n + 1) / 2 ์•„๋‹ ๊ฒฝ์šฐ 0์„ ๋”ํ•ด์ฃผ๋Š” ๊ฑธ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.

 

๋ฐ˜์‘ํ˜•