๐ ๋ชฉ์ฐจ.
4. ์ฃผ์
.์ข์ ์ฃผ์
.๋์ ์ฃผ์
โ๏ธ ๋ด์ฉ.
4. ์ฃผ์
์ฃผ์์ด ํ์ํ ์ํฉ๋ง๋ค ์ฝ๋๋ก ํํํ ๋ฐฉ๋ฒ์ด ์ ๋ง๋ก ์๋์ง ๋ค์ ํ๋ฒ ์๊ฐํด๋ณธ๋ค.
์ฃผ์์ ์ค๋๋๋ฆฌ์๋ก ์ฝ๋์์ ๋ฉ์ด์ง๋ค. ์ฃผ์์ ์ ์ง๋ณด์ ํ๊ธฐ๋ ํ์ค์ ์ผ๋ก ์ด๋ ต๊ธฐ ๋๋ฌธ์ด๋ค.
๋ถ์ ํํ ์ฃผ์์ ์๋ ์ฃผ์๋ง ๋ชปํ๋ค. ์ฝ๋๋ง์ด ์๊ธฐ๊ฐ ํ๋ ์ผ์ ์ง์ค๋๊ฒ ๋งํ๋ค.
๊ทธ๋ฌ๋ฏ๋ก ์ฃผ์์ ๊ฐ๋ฅํ ์ค์ด๋๋ก ๊พธ์คํ ๋ ธ๋ ฅํ๋ค.
.์ข์ ์ฃผ์
์ด๋ค ์ฃผ์์ ํ์ํ๊ฑฐ๋ ์ ์ตํ๋ค. ํ์ง๋ง ์ ๋ง๋ก ์ข์ ์ฃผ์์, ์ฃผ์์ ๋ฌ์ง ์๋ ๋ฐฉ๋ฒ์ด๋ผ๋ ๊ฒ์ ๋ช ์ฌํ๋ค.
- ๋ฒ์ ์ธ ์ฃผ์
๋๋ก๋ ํ์ฌ๊ฐ ์ ๋ฆฝํ ๊ตฌํ ํ์ค์ ๋ง์ถฐ ๋ฒ์ ์ธ ์ด์ ๋ก ํน์ ์ฃผ์์ ๋ฃ์ผ๋ผ๊ณ ๋ช ์ํ๋ค.
// Copyright (C) 2003,2004,2005 by Object Mentor, Inc, All rights reserved.
// GNU General Public License ๋ฒ์ 2์ด์์ ๋ฐ๋ฅด๋ ์กฐ๊ฑด์ผ๋ก ๋ฐฐํฌํ๋ค.
- TODO ์ฃผ์
๋๋ก๋ '์์ผ๋ก ํ ์ผ'์ ์ฃผ์์ผ๋ก ๋จ๊ฒจ๋๋ฉด ํธํ๋ค.
ํ์ํ๋ค ์ฌ๊ธฐ์ง๋ง ๋น์ฅ ๊ตฌํ์ ํ๋ ์ ๋ฌด์ผ ๊ฒฝ์ฐ TODO ์ฃผ์์ผ๋ก ๊ธฐ์ ํ๋ค.
๋จ, ์ฃผ๊ธฐ์ ์ผ๋ก TODO ์ฃผ์์ ์ ๊ฒํด ๊ด์ฐฎ์ ์ฃผ์์ ์์ ๋๋ก ํด์ผํ๋ค.
- ๋ณต์กํ ์๊ณ ๋ฆฌ์ฆ์ ์์ด ์๊ณ ๋ฆฌ์ฆ์ ์ดํดํ๊ธฐ ์ฝ๊ฒ ํ๋ ์ฃผ์
์๊ณ ๋ฆฌ์ฆ์ ์ดํดํ๊ธฐ ์ฌ์์ง์ ์์ด ๋์์ด ๋ ๊ฒฝ์ฐ ๋จ๊ฒจ๋๋ ๊ฒ์ ์ ํธํ๋ ํธ์ด๋ค. (ํ์ ๋๊ฐ)
์ ๊ณฑ๊ทผ(Math.sqrt)์ ์ฌ์ฉํ ์ด์ ์ ๋ํด ์ค๋ช
ํ๋ค. ์ ๊ณฑ๊ทผ์ด ์ ๋ง ์ข์ ๋ฐฉ๋ฒ์ธ๊ฐ์๋ํด ์ค๋ช
ํ๊ณ ์๊ณ ํ ๊ฐ์น๊ฐ ๋ฌธ์ ์ด๊ธฐ ๋๋ฌธ์ ๋จ๊ฒจ๋๋ค. (ํ์ ๋๊ฐ)
/**
* ์ด ํด๋์ค๋ ์ฌ์ฉ์๊ฐ ์ง์ ํ ์ต๋ ๊ฐ๊น์ง ์์๋ฅผ ๊ตฌํ๋ค.
* ์๊ณ ๋ฆฌ์ฆ์ ์๋ผ์คํ ํ
๋ค์ค์ ์ฒด๋ค.
* 2์์ ์์ํ๋ ์ ์ ๋ฐฐ์ด์ ๋์์ผ๋ก ์์
ํ๋ค.
* ์ฒ์์ผ๋ก ๋จ์ ์๋ ์ ์๋ฅผ ์ฐพ์ ๋ฐฐ์๋ฅผ ๋ชจ๋ ์ ๊ฑฐํ๋ค.
* ๋ฐฐ์ด์ ๋ ์ด์ ๋ฐฐ์๊ฐ ์์ ๋๊น์ง ๋ฐ๋ณตํ๋ค.
*/
public class PrimeGenerator{
private static int intdetermineIterationLimit(){
// ๋ฐฐ์ด์ ์๋ ๋ชจ๋ ๋ฐฐ์๋ ๋ฐฐ์ด ํฌ๊ธฐ์ ์ ๊ณฑ๊ทผ๋ณด๋ค ์์ ์์์ ์ธ์๋ค.
// ๋ฐ๋ผ์ ์ด ์ ๊ณฑ๊ทผ๋ณด๋ค ๋ ํฐ ์ซ์์ ๋ฐฐ์๋ ์ ๊ฑฐํ ํ์๊ฐ ์๋ค.
double iterationLimit = Math.sqrt(crossedOut.length);
return (int) iterationLimit;
}
}
.๋์ ์ฃผ์
๋๋ถ๋ถ์ ์ฃผ์์ ๋ํด ๋ถ์ ์ ์ด๊ธฐ ๋๋ฌธ์ ๊ฐ๋จํ๊ฒ ๋ชฉ๋ก๋ง ๋์ด ํ๋๋ก ํ๋ค.
- ์ฃผ์ ๊ฑฐ๋ฆฌ๋ ์ฃผ์
- ๊ฐ์ ์ด์ผ๊ธฐ๋ฅผ ์ค๋ณตํ๋ ์ฃผ์
- ์คํดํ ์ฌ์ง๊ฐ ์๋ ์ฃผ์
- ์๋ฌด์ ์ผ๋ก ๋ค๋ ์ฃผ์
- ์ด๋ ฅ์ ๊ธฐ๋กํ๋ ์ฃผ์
- ์์ผ๋ ๋ง๋ํ ์ฃผ์
- ๋ฑ๋ฑ..
๐ ๋๋์ .
- ๋์ฒด์ ์ผ๋ก ์ฃผ์์ ์ฌ์ฉํ์ง ๋ง๋ผ๋ ๋ด์ฉ์ด ํต์ฌ์ผ๋ก ์ดํดํ๊ณ ๋๋ถ๋ถ์ ๋ด์ฉ์ ์๋ต ํ์๋ค.
- ํ์ํ ์ฃผ์ ๋ช๊ฐ์ ๊ณต๊ฐ๊ฐ๋ ๋ถ๋ถ์ด ์์ด์ ๊ธฐ์ ํ๊ฒ ๋์๋ค.
'Study > CleanCode' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Study][CleanCode - 2] 6. ๊ฐ์ฒด์ ์๋ฃ๊ตฌ์กฐ (0) | 2022.07.14 |
---|---|
[Study][CleanCode - 2] 5. ํ์ ๋ง์ถ๊ธฐ (0) | 2022.07.13 |
[Study][CleanCode - 1] 3. ํจ์ (0) | 2022.07.01 |
[Study][CleanCode - 1] 2. ์๋ฏธ ์๋ ์ด๋ฆ (0) | 2022.06.28 |
[Study][CleanCode - 1] 1. ๊นจ๋ํ ์ฝ๋ (0) | 2022.06.28 |