๋ฐ์ํ
Data
Data Process
Predenfined process
Decision
Loop limit
Line
Terminator
๋ฐ๋ณต ๊ตฌ์กฐ
repetition
๋ฃจํ Loop
๋ผ๊ณ ํฉ๋๋ค.
์ด ๋ while๋ฌธ์ ์คํ ์ ์ ๋ฐ๋ณต์ ๊ณ์ํ ์ง ํ๋จํ๋ ๊ฑธ '์ฌ์ ํ๋จ ๋ฐ๋ณต ๊ตฌ์กฐ' ๋ผ๊ณ ํฉ๋๋ค.
์ฐ์ต๋ฌธ์ ํ์ด๋ณด๊ธฐ
๋ฌธ์ : 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์ ๋ํด์ฃผ๋ ๊ฑธ ์ฐพ์ ์ ์๋ค.
๋ฐ์ํ
'๐ธ Algorithm > ๐ธ ์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java/Algorithm](๊ธฐ๋ณธ)๋ฐฐ์ด ์ญ์์ ๋ ฌ (0) | 2024.08.25 |
---|---|
[Java/Algorithm]์๋ฃ๊ตฌ์กฐ์ ๋์ (0) | 2024.08.23 |
[Java/Algorithm]๋จ์ถํ๊ฐ, ๋๋ชจ๋ฅด๊ฐ ๋ฒ์น, ๋ค์ค๋ฃจํ (1) | 2024.08.21 |
[Java/Alorithm]์๊ณ ๋ฆฌ์ฆ์ด๋? (0) | 2024.08.18 |
์ด ์นดํ ๊ณ ๋ฆฌ๋ ์ฑ ์ ๊ธฐ๋ฐ์ผ๋ก ์ ๋ฆฌํ์์ต๋๋ค. (0) | 2024.08.18 |