민뭉아치
민뭉아치
민뭉아치
전체 방문자
오늘
어제
  • 분류 전체보기 (62)
    • ㅁㅁㅇㅊ's Life (0)
      • Diary (1)
      • Certification (6)
      • English (1)
      • 독서 (1)
    • Algorithm (25)
    • Web (2)
    • Language (3)
      • JavaScript (1)
      • JAVA (2)
    • Spring boot (9)
    • Cloud (0)
    • DevOps (1)
    • Trouble Shooting (6)
    • 개발환경 (3)
    • 짤막IT지식 (4)

블로그 메뉴

  • 홈
  • 깃허브
  • 방명록

공지사항

인기 글

태그

  • 백준
  • 자바
  • 백준알고리즘
  • Java
  • Spring
  • 알고리즘
  • 코딩테스트
  • 자격증
  • Algorithm
  • 정보처리기사

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
민뭉아치
Algorithm

[자바 알고리즘 문제풀이] String 07. 회문문자열

Algorithm

[자바 알고리즘 문제풀이] String 07. 회문문자열

2022. 3. 7. 00:38

String(스트링) 07.  회문문자열


* 사용 언어 : JAVA

* Inflearn의 자바(Java)알고리즘 문제풀이 : 코딩테스트 대비 강의내용 정리

 

1. 문제

앞 뒤로 읽을 때 같은 문자열인 회문 문자열을 받으면 Yes, 아니면 No를 출력하기
회문 문자열 검사시 대소문자 구분하지 않음
// 입력
gooG

// 출력
YES

 

2. 풀이

문자열의 첫 번째 인덱스부터 마지막 인덱스 len-1에서 i를 빼준 인덱스를 반복 비교하면 두 인덱스가 중간지점에서 만나게 된다. 
회문문자열이므로 비교한 두 문자가 같으면 그대로 answer을 반환하고 아니면 "NO"로 값을 변경 후 반환한다.

 

또 다른 방법은 전달받은 문자열을 StringBuilder의 reverse() 메서드를 사용하여 뒤집어준다.

원래 입력받은 문자열과 뒤집은 문자열을 equals()메서드로 비교하여 answer을 반환하고 아니면 NO로 값을 변경 후 반환한다.

equals() 메서드는 대소문자를 구분하니 미리 대문자 또는 소문자로 변환해준다. 

3. 코드 

public class Main {
    public String solution(String str) {
        String answer = "YES";
        str = str.toLowerCase();
        int len = str.length();
        for (int i = 0; i < len/2; i++) {
            if (str.charAt(i) != str.charAt(len-i-1)) return answer = "NO";
        }

        return answer;
    }

    public static void main(String[] args) {
        Main T = new Main();
        Scanner scanner = new Scanner(System.in);
        String str = scanner.next();
        System.out.println(T.solution(str));
    }

}

 

public class Main {
    public String solution(String str) {
        String answer = "YES";
        str = str.toLowerCase();
        String reversStr = new StringBuilder(str).reverse().toString();
        if (!str.equals(reversStr)) return answer = "NO";

        return answer;
    }

    public static void main(String[] args) {
        Main T = new Main();
        Scanner scanner = new Scanner(System.in);
        String str = scanner.next();
        System.out.println(T.solution(str));
    }

}

4. Keword

  • String
    • equals()
  • StringBuilder
    • reverse()
반응형

'Algorithm' 카테고리의 다른 글

[자바 알고리즘 문제풀이] String 09. 숫자만 추출  (0) 2022.03.21
[자바 알고리즘 문제풀이] String 08. 유효한 팰린드룸  (0) 2022.03.07
[자바 알고리즘 문제풀이] String 06. 중복 문자 제거  (0) 2022.03.07
[자바 알고리즘 문제풀이] String 05. 특정 문자 뒤집기  (0) 2022.03.07
[자바 알고리즘 문제풀이] String 04. 단어 뒤집기  (0) 2022.03.06
  • String(스트링) 07.  회문문자열
  • 1. 문제
  • 2. 풀이
  • 3. 코드 
  • 4. Keword
'Algorithm' 카테고리의 다른 글
  • [자바 알고리즘 문제풀이] String 09. 숫자만 추출
  • [자바 알고리즘 문제풀이] String 08. 유효한 팰린드룸
  • [자바 알고리즘 문제풀이] String 06. 중복 문자 제거
  • [자바 알고리즘 문제풀이] String 05. 특정 문자 뒤집기
민뭉아치
민뭉아치
Do Better Today Than You Were Yesterday

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.