728x90
반응형
알파벳 소문자로만 이루어진 단어가 주어진다. 이 때, 이 단어가 팰린드롬인지 아닌지 확인하는 프로그램을 작성하시오.
팰린드롬이란 앞으로 읽을 때와 거꾸로 읽을 때 똑같은 단어를 말한다.
level, noon은 팰린드롬이고, baekjoon, online, judge는 팰린드롬이 아니다.
풀이
보통 팰린드롬 문제를 정석적으로 풀기 위해서는 스택을 사용한다.
문자열의 길이/2 만큼은 스택에 넣고, 나머지는 스택에 있는 값을 꺼내보면서 확인하는 것이다.
그러나 스택을 만들기 번거롭다면 아래와 같이 코드를 작성해도 좋다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | import java.util.Scanner; public class Main { public static void main(String[] args){ Scanner sc = new Scanner(System.in); String[] str = sc.next().split(""); for(int i = 0; i<str.length/2; i++){ int compIdx = str.length-i-1; if(!str[i].equals(str[compIdx])){ System.out.print(0); return; } } System.out.print(1); } } | cs |
반응형
'알고리즘 문제풀이' 카테고리의 다른 글
[알고리즘] 최소비용신장트리(Minimum Spanning Tree) - 4 (0) | 2017.06.02 |
---|---|
[알고리즘] 최소비용신장트리(Minimum Spanning Tree) - 3 (0) | 2017.06.02 |
[Backjoon] 2592번 문제 - 대표값 (0) | 2017.05.27 |
[Backjoon] 1550번 문제 - 16진수 (0) | 2017.05.27 |
[Backjoon] 6359번 문제 - 만취한 상범 (0) | 2017.05.27 |
댓글