Notice
Recent Posts
Recent Comments
Link
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
관리 메뉴

UpDown Dev Story

알고리즘 연습 - 회문 문자열 본문

Algorithm

알고리즘 연습 - 회문 문자열

updown 2021. 5. 23. 19:17

아래 강의를 보면서 연습하고 기록하고 있습니다

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

 

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

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

www.inflearn.com

 

문제

내 소스코드

import java.util.Scanner;

public class Algorithm {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String inputString = sc.next();
		String reverseInputString = new StringBuilder(inputString).reverse().toString();

		if (inputString.equalsIgnoreCase(reverseInputString)) {
			System.out.println("YES");
		} else {
			System.out.println("NO");
		}
	}

}

 

강사님 소스코드

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));
	}
}

내 소스코드 해설

  1. 사용자에게 단어를 입력받고
  2. String으로 받은 단어를 StringBuilder로 변환하여 reverse() 한다
  3. equalsIgnoreCase 를 사용하여 대소문자 구분 없이 입력받은단어와 reverse한 단어가 일치하면 YES 아니면 NO 출력

강사님 소스코드 해설

  1. 사용자에게 단어를 입력받고
  2. 해당 단어의 길이를 반으로 나눈 만큼 for loop를 돌면서 앞과 뒤를 비교하여 회문문자인지 비교하여 YES 아니면 NO 출력

참고사항

  • StringBuilder에 reverse 메소드가 있다
  • equalsIgnoreCase 사용하면 대소문자 구분 없이 비교할수 있다.
Comments