문제 : 두 자연수 n, m이 매개변수로 주어질 때, n 이상 m 이하의 자연수 중 팰린드롬인 숫자의 개수를 return 하도록 solution 함수를 완성하기
palindrome은 앞에서부터 읽을 때와 뒤에서 읽을 때 똑같은 단어를 뜻합니다.
예를 들어서 abcdeedcba, racecar, 10201은 palindrome 입니다.
처음 이 문제를 접했을 때 일단 매개변수로 주어진 범위내의 자연수 중에서 palindrome 을 찾는 것이기 때문에 인덱스로 문자를 비교하자는 생각이 들었습니다.
그래서 매개변수로 받은 n부터 m까지의 자연수를 ArrayList에 넣고 처음과 끝을 비교해가며 비교를 했습니다.
import java.util.ArrayList; public class Palindrome1 { public int palindrome(int n, int m) { int answer = 0; ArrayList<String> strAl = new ArrayList<String>(); for (int i = n; i <= m; i++) { strAl.add(Integer.toString(i)); } for (int j = 0; j < strAl.size(); j++) { int startInx = 0;//처음 int endInx = strAl.get(j).length() - 1;//끝 while (true) { if (strAl.get(j).charAt(startInx) == strAl.get(j).charAt(endInx)) {//양쪽비교 startInx++; endInx--; if ((startInx >= endInx)) { //양쪽 다같음 answer++; break; } } else { break; } } } return answer; } }