[BOJ] 1259번 팰린드롬수 - JAVA

최영환·2022년 10월 4일
0

BaekJoon

목록 보기
24/87
post-thumbnail
## Java 풀이 시 유의사항 ##
클래스명은 Main 으로 작성해야함!

💡 문제

💬 입출력 예시

📌 풀이(소스코드)

/* 풀이 1 */
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        StringBuilder sb = new StringBuilder();
        while(true) {
            String num = br.readLine();
            String flippedNum = new StringBuilder(num).reverse().toString();

            if (num.equals("0")) break;

            if (num.equals(flippedNum)) {
                sb.append("yes\n");
            }
            else {
                sb.append("no\n");
            }
        }
        System.out.println(sb);
    }
}

/* 풀이 2 */
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        StringBuilder sb = new StringBuilder();
        while(true) {
            String num = br.readLine();
            StringBuilder flippedNum = new StringBuilder();

            if (num.equals("0")) break;

            for (int i = num.length()-1; i >= 0; i--) {
                flippedNum.append(num.charAt(i));
            }
            if (num.equals(flippedNum.toString())) {
                sb.append("yes\n");
            }
            else {
                sb.append("no\n");
            }
        }
        System.out.println(sb);
    }
}

📄 해설

  • 단순히 문자열을 뒤집기만 하면 되는 문제
  • 풀이 1 의 경우 StringBuilder.reverse 메소드를 사용하여 문자열을 뒤집음
  • 풀이 2 의 경우 수를 입력 받은 뒤, StringBuilder 객체인 flippedNum 에 반복문을 사용하여 마지막 문자부터 삽입하여 문자열을 뒤집음
  • 두 문자열을 비교하여 같으면 yes 를, 다르면 no 를 결과 문자열에 추가
  • 두 풀이의 성능 차이는 없으나, 풀이 1 의 코드가 더 짧음
profile
조금 느릴게요~

0개의 댓글