Palindrome Number
์ ์ X ๊ฐ ์ฃผ์ด์ก์ ๋, ์ ์ X ๊ฐ ํฐ๋ฆฐ๋๋กฌ์ด๋ฉด True, ์๋๋ฉด False ๋ฅผ ๋ฐํํ์์ค.
๋ฌธ์ ํ๋จ์ ๋ณด๋ฉด ์ ์๋ฅผ String ์ผ๋ก ์ปจ๋ฒํ ํ์ง ์๊ณ ํ๋ผ๋ ๋ง์ด ์๋ค.
Palindrom
ํฐ๋ฆฐ๋๋กฌ ์ด๋ ์ซ์๋ ๋ฌธ์์ด์ ์์์ ์ฝ๋ , ๋ค์์ ์ฝ๋ ๋์ผํ ๊ฒฝ์ฐ ๋ฅผ ๋งํจ.
์๋ฅผ ๋ค์ด:
์ซ์
121-> ๋ค์ง์ด๋121์ด๋ฏ๋ก ํฐ๋ฆฐ๋๋กฌ์.์ซ์
10-> ๋ค์ง์ผ๋ฉด01์ด๋ฏ๋ก ํฐ๋ฆฐ๋๋กฌ์ด ์๋.
๋ฌธ์ ๋ฐ์
ํฐ๋ฆฐ๋๋กฌ์ ํ์ธํ๋ ์๊ณ ๋ฆฌ์ฆ์ ์์ฑํ์ ๋, ์ซ์
10์ฒ๋ผ ํฐ๋ฆฐ๋๋กฌ์ด ์๋ ์ซ์๊ฐ ์๋ชป๋ ์กฐ๊ฑด ์ผ๋ก ์ธํด ํฐ๋ฆฐ๋๋กฌ์ผ๋ก ํ์ ๋๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์์.
public boolean isPalindrome(int x) {
int reversedHalf = 0;
while(x > reversedHalf) {
int lastDigit = x % 10;
reversedHalf = reversedHalf * 10 + lastDigit;
x /= 10;
}
return x == reversedHalf || x == reversedHalf /10;
}์ ์ฝ๋์์๋ 10์ผ ๋ True ๋ฅผ ๋ฐํํจ.
์ด์ ์ฝ๋ ํ๋ฆ
์ซ์๋ฅผ ๋ค์ง์ ์ ๋ฐ(
reversedHalf)๋ฅผ ์์ฑํจ.์๋ ์ซ์์ ์๋ถ๋ถ(
x)๊ณผ ๋ค์งํ ์ ๋ฐ์ ๋น๊ตํ์ฌ ํฐ๋ฆฐ๋๋กฌ ์ฌ๋ถ๋ฅผ ํ๋จํจ.์ง์ ์๋ฆฌ ์ซ์๋
num == reversedHalf๋ก ๋น๊ตํ๊ณ , ํ์ ์๋ฆฌ ์ซ์๋ ๊ฐ์ด๋ฐ ์ซ์๋ฅผ ๋ฌด์ํ๊ณ ๋น๊ต(num == reversedHalf / 10) ํจ.
์์ ์๋ฃํ ์ฝ๋
public boolean isPalindrome(int x) {
if(x < 0 || (x % 10 == 0 && x != 0)){
return false;
}
int reversedHalf = 0;
while(x > reversedHalf) {
int lastDigit = x % 10;
reversedHalf = reversedHalf * 10 + lastDigit;
x /= 10;
}
return x == reversedHalf || x == reversedHalf /10;
}Last updated
Was this helpful?