โ ๋ฌธ์
โ ์ฝ๋
public class bonus02 {
public static void main(String[] args) {
System.out.println(getMiddle("123456789"));
}
public static String getMiddle(String wrd) {
int center = wrd.length() / 2 + 1;
String result;
if (wrd.length() % 2 == 0) {
result = wrd.substring(center - 2, center);
} else {
result = wrd.substring(center - 1, center);
}
return result;
}
}
1. getMiddle ๋ฉ์๋๋ ๋ฌธ์์ด์ ์
๋ ฅ์ผ๋ก ๋ฐ์์ ๊ทธ ๋ฌธ์์ด์ ์ค๊ฐ์ ์๋ ๋ฌธ์ ๋๋ ๋ฌธ์๋ค์ ๋ฐํํ๋ค.
2. ์
๋ ฅ๋ ๋ฌธ์์ด์ ๊ธธ์ด๋ฅผ ์ด์ฉํ์ฌ ์ค๊ฐ ์ธ๋ฑ์ค๋ฅผ ๊ณ์ฐํ๋ค.
- ๋ง์ฝ ๋ฌธ์์ด์ ๊ธธ์ด๊ฐ ํ์์ด๋ฉด ์ค๊ฐ์ ์๋ ๋ฌธ์๋ฅผ ๋ฐํํ๊ณ , ์ง์์ด๋ฉด ์ค๊ฐ์ ์๋ ๋ ๋ฌธ์๋ฅผ ๋ฐํํ๋ค.
3. substring ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์ค๊ฐ์ ์๋ ๋ฌธ์ ๋๋ ๋ฌธ์๋ค์ ์ถ์ถํ๋ค.
- ์ถ์ถํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ค.
wrd.length() / 2 + 1
๋ฌธ์์ด์ ์ค๊ฐ ์์น๋ฅผ ๊ณ์ฐํ๋ ๋ถ๋ถ์ด๋ค.
์ฌ๊ธฐ์ + 1์ ํ๋ ์ด์ ๋ ๋ฌธ์์ด์ ์ธ๋ฑ์ค๊ฐ 0๋ถํฐ ์์ํ๊ธฐ ๋๋ฌธ์ด๋ค. ๋ฌธ์์ด์ ๊ธธ์ด๊ฐ ํ์์ธ ๊ฒฝ์ฐ, ์ค๊ฐ ๋ฌธ์๋ (๊ธธ์ด - 1) / 2 ์์น์ ์๋ค. ์๋ฅผ ๋ค์ด, ๊ธธ์ด๊ฐ 5์ธ ๋ฌธ์์ด์ ๊ฒฝ์ฐ, ์ค๊ฐ ๋ฌธ์๋ ์ธ๋ฑ์ค 2์ ์์นํ๋ค. ๋ฌธ์์ด์ ๊ธธ์ด๊ฐ ์ง์์ธ ๊ฒฝ์ฐ, ์ค๊ฐ์ ์๋ ๋ ๋ฌธ์๋ฅผ ๋ฐํํด์ผ ํ๋ค. ์๋ฅผ ๋ค์ด, ๊ธธ์ด๊ฐ 6์ธ ๋ฌธ์์ด์ ๊ฒฝ์ฐ, ์ค๊ฐ์ ์๋ ๋ ๋ฌธ์๋ ์ธ๋ฑ์ค 2์ 3์ ์์นํ๋ค. ๋ฐ๋ผ์ + 1์ ์ถ๊ฐํ์ฌ ์ค๊ฐ ์์น๋ฅผ ๊ณ์ฐํจ์ผ๋ก์จ ํ์ ๊ธธ์ด์ ์ง์ ๊ธธ์ด์ ๊ฒฝ์ฐ ๋ชจ๋ ์ ํํ ์ค๊ฐ ์์น๋ฅผ ๊ณ์ฐํ ์ ์๋ค.
substring(int beginIndex, int endIndex) ๋ฉ์๋
์ฃผ์ด์ง ๋ฌธ์์ด์์ ํน์ ๋ฒ์์ ๋ฌธ์์ด์ ์ถ์ถํ๋ ๋ฉ์๋
์ฌ๊ธฐ์ beginIndex๋ ์ถ์ถ์ ์์ํ ์ธ๋ฑ์ค๋ฅผ ๋ํ๋ด๊ณ , endIndex๋ ์ถ์ถ์ ๋๋ผ ์ธ๋ฑ์ค๋ฅผ ๋ํ๋ธ๋ค. ์ด๋, beginIndex๋ ํฌํจ๋๊ณ , endIndex๋ ํฌํจ๋์ง ์๋๋ค. ์ฆ, ๋ฐํ๋๋ ๋ฌธ์์ด์๋ beginIndex์ ํด๋นํ๋ ๋ฌธ์๋ ํฌํจ๋์ง๋ง, endIndex์ ํด๋นํ๋ ๋ฌธ์๋ ํฌํจ๋์ง ์๋๋ค.
(length-1)/2 VS length/2 +1
(๊ธธ์ด - 1) / 2 ๋ฐฉ์:
๋ฌธ์์ด์ ๊ธธ์ด๊ฐ ํ์์ผ ๋: (ํ์ - 1) / 2 = ํ์ / 2 = ์ ์ (ํ์ ๊ธธ์ด ๋ฌธ์์ด์ ์ค๊ฐ ์ธ๋ฑ์ค)
๋ฌธ์์ด์ ๊ธธ์ด๊ฐ ์ง์์ผ ๋: (์ง์ - 1) / 2 = ์ง์ / 2 = ์ ์ (์ง์ ๊ธธ์ด ๋ฌธ์์ด์ ์ค๊ฐ ์ผ์ชฝ ์ธ๋ฑ์ค)
๊ธธ์ด / 2 + 1 ๋ฐฉ์:
๋ฌธ์์ด์ ๊ธธ์ด๊ฐ ํ์์ผ ๋: ํ์ / 2 + 1 = ์ ์ (ํ์ ๊ธธ์ด ๋ฌธ์์ด์ ์ค๊ฐ ์ธ๋ฑ์ค)
๋ฌธ์์ด์ ๊ธธ์ด๊ฐ ์ง์์ผ ๋: ์ง์ / 2 + 1 = ์ ์ (์ง์ ๊ธธ์ด ๋ฌธ์์ด์ ์ค๊ฐ ์ค๋ฅธ์ชฝ ์ธ๋ฑ์ค)
์ด ๋ ๊ฐ์ง ๋ฐฉ์ ์ค ์ด๋ ๊ฒ์ ์ ํํ๋๋๋ ์ค๊ฐ์ ์๋ ๋ฌธ์๋ ๋ฌธ์๋ค์ ์ด๋ป๊ฒ ์ ์ํ๋๋์ ๋ฐ๋ผ ๋ค๋ฅด๋ค. ์ฒซ ๋ฒ์งธ ๋ฐฉ์์ ํ์ ๊ธธ์ด ๋ฌธ์์ด์ ๊ฒฝ์ฐ ์ค๊ฐ์ ์๋ ๋ฌธ์๋ฅผ ์ ํํ ๊ฐ๋ฆฌํค์ง๋ง, ์ง์ ๊ธธ์ด ๋ฌธ์์ด์ ๊ฒฝ์ฐ ์ผ์ชฝ์ ์๋ ๋ฌธ์๋ฅผ ๊ฐ๋ฆฌํจ๋ค. ๋ฐ๋ฉด ๋ ๋ฒ์งธ ๋ฐฉ์์ ํ์์ ์ง์ ๋ชจ๋ ์ค๊ฐ์ ์๋ ๋ฌธ์๋ฅผ ๊ฐ๋ฆฌํจ๋ค. ๊ทธ๋์ ๋ ๋ฒ์งธ ๋ฐฉ์์ด ๋ ์ ํฉํ๊ณ ์ ํํ๋ค.