Java

#7 자바(JAVA) 알고리즘 문제풀이 : 코딩테스트 대비 / 회문 문자열

kminnnee 2023. 2. 10. 16:09

회문 문자열 : 앞에서 읽을 때나 뒤에서 읽을 때나 같은 문자열을 뜻함 

문자열이 입력되었을 때 해당 문자열이 회문 문자열이면 "YES", 회문 문자열이 아니면  "NO" 를 출력하는 프로그램을 작성 

해당 문제는 대소문자를 구별하지 않는다. 

.

.

입력 :  gooG            출력 : YES


import java.util.Scanner;

// 회문문자열비교
// 대소문자 구분없이 뒤집어도 같은 문자인지 확인하는 문제

public class Inflearn7 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String str = scanner.next();
        str= str.toLowerCase();             // 받은 문자열을 모두 소문자로 변경
        int flag = 0;                       // 플래그 변수 활용
        char[] s = str.toCharArray();     // 받은 문자열을 새로운 문자열 s 로 선언
        int len = str.length();
        for(int i=0; i<len/2; i++) {
            if(str.charAt(i)!= str.charAt(len-i-1))     // len-i-1 이어야만 만약 i가 0일때 마지막 인덱스부터 검사할 수 있음
                flag = 1;                               // 비교해서 다를시 플래그를 변경
        }

        // 플래그에 따라 출력
        if(flag ==0)
            System.out.println("YES");
        else
            System.out.println("NO");
    }
}

* 문제 해결 특징은 먼저 입력에서 받은 문자열에서 대소문자 구분을 용이하게 하기위해서

문자열 전체를 소문자 또는 대문자로 바꿔 변수에 저장을 먼저 해준다 . 

그 문자열을 새로운 배열에 넣어준 후 ....

배열의 처음과 끝에서 부터 비교를 하여 flag 변수를 바꾸어준 후 출력한다. 

.

.

이번주도 화이팅 !!!

 

 

출처 : https://www.inflearn.com/course/%EC%9E%90%EB%B0%94-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EB%AC%B8%EC%A0%9C%ED%92%80%EC%9D%B4-%EC%BD%94%ED%85%8C%EB%8C%80%EB%B9%84/dashboard

 

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비 - 인프런 | 강의

자바(Java)로 코딩테스트를 준비하시는 분을 위한 강좌입니다. 코딩테스트에서 가장 많이 출제되는 Top 10 Topic을 다루고 있습니다. 주제와 연동하여 기초문제부터 중급문제까지 단계적으로 구성

www.inflearn.com