Recent Posts
Link
250x250
오늘보다 더 나은 내일의 나에게_
자바 알고리즘 문제 풀이 String Q07_회문 문자열 본문
728x90
설명
앞에서 읽을 때나 뒤에서 읽을 때나 같은 문자열을 회문 문자열이라고 합니다.
문자열이 입력되면 해당 문자열이 회문 문자열이면 "YES", 회문 문자열이 아니면 “NO"를 출력하는 프로그램을 작성하세요.
단 회문을 검사할 때 대소문자를 구분하지 않습니다.
입력
첫 줄에 길이 100을 넘지 않는 공백이 없는 문자열이 주어집니다.
출력
첫 번째 줄에 회문 문자열인지의 결과를 YES 또는 NO로 출력합니다.
예시 입력1
예시 출력gooG YES
코드
내가 입력한 코드
package String; import java.util.Scanner; public class Q07 { public String solution(String str) { String answer = ""; String lowStr = str.toLowerCase(); StringBuffer sb = new StringBuffer(str.toLowerCase()); String x = sb.reverse().toString(); if(lowStr.equals(x.toLowerCase())) { answer = "YES"; }else { answer = "NO"; } return answer; } public static void main(String[] args) { Q07 T = new Q07(); Scanner kb = new Scanner(System.in); String str = kb.next(); System.out.println(T.solution(str)); } }
해설 코드import java.util.*; class Main { public String solution(String str){ String answer="YES"; str=str.toUpperCase(); int len=str.length(); for(int i=0; i<len/2; i++){ if(str.charAt(i)!=str.charAt(len-i-1)) answer="NO"; } return answer; } public static void main(String[] args){ Main T = new Main(); Scanner kb = new Scanner(System.in); String str=kb.next(); System.out.print(T.solution(str)); } }
import java.util.*; class Main { public String solution(String str){ String answer="NO"; String tmp=new StringBuilder(str).reverse().toString(); if(str.equalsIgnoreCase(tmp)) answer="YES"; return answer; } public static void main(String[] args){ Main T = new Main(); Scanner kb = new Scanner(System.in); String str=kb.next(); System.out.print(T.solution(str)); } }
풀이 및 정리
먼저 회문 문자열에 대해 처음 들어 봤다.
회문 문자열이란?
=> 앞으로 읽거나 뒤로 읽어도 같은 문자!
해설 코드에서는 2가지 방법에 대한 코드가 있다. 한 가지 방법은 내가 풀이한 코드와 유사하다.
그렇지만 소문자 대문자를 무시하고 비교하는 equalsIgnoreCase()라는 메서드를 사용하였다.
equalsIgnoreCase() => 대 소문자 구분하지 않고 비교!!
나머지 한 가지 방법은 문자열의 첫 글자와 끝 글자를 비교하고 그다음에는 첫 글자 뒷글자와 끝 글자 앞글자를 비교하는 반복적인 방식이다. 만약 문자열 길이가 4라면 index는 2개만 있으면 된다! 만약 문자열 길이가 7이라면 3개의 index만 있으면 된다!
추가적으로 answer라는 변수에 "YES", "NO"로 초기화 해주는게 좀 더 효율적인 방법인 듯하다!
728x90
'ALGORITHM > inflearn_javaAlgorithm' 카테고리의 다른 글
자바 알고리즘 문제 풀이 String Q09_숫자만 추출 (0) | 2022.02.02 |
---|---|
자바 알고리즘 문제 풀이 String Q08_유효한 팰린드롬 (0) | 2022.01.31 |
자바 알고리즘 문제 풀이 String Q06_중복문자제거 (0) | 2022.01.26 |
자바 알고리즘 문제 풀이 String Q05_특정 문자 뒤집기 (0) | 2022.01.25 |
자바 알고리즘 문제 풀이 String Q04_단어 뒤집기 (0) | 2022.01.23 |
Comments