[JAVA] SWEA (D2) 1989. 초심자의 회문 검사

AIR·2023년 9월 13일
0

링크

https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=2&contestProbId=AV5PyTLqAf4DFAUq&categoryId=AV5PyTLqAf4DFAUq&categoryType=CODE&problemTitle=&orderBy=PASS_RATE&selectCodeLang=JAVA&select-1=2&pageSize=10&pageIndex=1


문제 설명

(정답률 78.77%)
"level" 과 같이 거꾸로 읽어도 제대로 읽은 것과 같은 문장이나 낱말을 회문(回文, palindrome)이라 한다.

단어를 입력 받아 회문이면 1을 출력하고, 아니라면 0을 출력하는 프로그램을 작성하라.


입력 예제

3
level
samsung
eye


출력 예제

#1 1
#2 0
#3 1


나의 코드

import java.io.*;
import java.util.*;

class Solution
{
	public static void main(String args[]) throws Exception
	{		
    	//BufferedReader는 Scanner와 유사
        //엔터로 구분해서 입력을 받으며 타입은 String으로 받는다
        //BufferedWriter는 System.out.println()와 유사
        //둘다 속도 측면에서 빨라서 많은 양의 데이터를 처리할 때 유리하다
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		
        int T = Integer.parseInt(br.readLine());

		for (int i = 1; i <= T; i++) {
            String s = br.readLine();
            StringBuilder sb1 = new StringBuilder();
            StringBuilder sb2 = new StringBuilder();
            int answer = 0;

			//주어진 문자열의 길이에 따라 구분하여
            //StringBuilder 객체에 추가한다
            if (s.length() % 2 == 0) {
                sb1.append(s.substring(0, s.length() / 2));
                sb2.append(s.substring(s.length() / 2));
            } else {
                sb1.append(s.substring(0, s.length() / 2 + 1));
                sb2.append(s.substring(s.length() / 2));
            }
            //sb2를 역순으로 정렬하여 sb1와 비교한다
            if (sb1.toString().contentEquals(sb2.reverse())) {
                answer = 1;
            }

            bw.write("#" + i + " " + answer + "\n");
            bw.flush();
        }
        bw.close();
    }
}

정리

문제 자체는 간단한 문제였다.
코테 문제 풀이 사이트는 백준과 프로그래머스만 이용해봤는데
이번에 모집 할 SSAFY에 지원하기 위하여 환경이 비슷한 SWEA에서 연습을 시작했다.
백준도 파이썬으로만 해봐서 자바로 입출력을 해보려니 해본적이 없어서 처음부터 난관이 있었지만.. 몇문제 풀어보니 조금은 익숙해지려한다.
SWEA는 입출력 테스트 코드로 txt파일이 주어지는데 다운받아서
IDE에서 다음과 같이 작성하면
굳이 내가 일일이 입력값을 넣지 않아도 알아서 입력값이 들어간다.

System.setIn(new FileInputStream("input.txt"));
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int T = Integer.parseInt(br.readLine());
String s = br.readLine()
profile
백엔드

0개의 댓글