알고리즘 기초 - 22 ( 팰린드롬 판별 )
Algorithm/풀었던문제 2019. 12. 23. 15:13팰린드롬 (palindrome)이란?
앞에서부터 읽던, 뒤에서부터 읽던 같은 단어를 말한다. (중간을 기준으로 앞, 뒤가 대칭이 되는 단어)
'aba' 나 '51315' 같은 단어를 팰린드롬이라고 하고, 'abc' 나 ''12345' 같은 단어는 팰린드롬이 아니다.
출처
https://mygumi.tistory.com/176
Main.java
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | package Problem22; import java.util.Scanner; public class Main { public static void main(String[] args) { // 입력된 수가 팰린드롬인지 판별, // 팰린드롬이란 ??앞으로 읽던, 뒤에서 부터 읽던 같은 단어 //int 타입은 정수타입이기 때문에 인덱스가 없어서 판별하기 힘드므로 String 타입을 사용한다. System.out.println("판별할 문자나 숫자를 입력하시오."); String n; Scanner scan = new Scanner(System.in); n = scan.nextLine(); int len = n.length(); //flag는 팰린드롬이면 그대로 true로 출력이 되고 아래 for문을 돌려서 if문에 해당이 되서 //팰린드롬이 아니라면 false가 출력되어서 팰린드롬을 판별할 수 있다. boolean flag = true; //궂이 끝까지 갈필요 없이 중간까지만 가면 되므로 len/2를 해준다. for (int i = 0; i < len/2; i++) { //if문의 좌항은 0번째 인덱스항 부터 계속 증가하면서 한칸씩 이동하고 //우항은 끝쪽에 있는 인덱스항부터 계속 감소하면서 내려온다. //두 개의 값을 비교해서 서로 한번이라도 다르면 팰린드롬이 되지 못하므로, //flag에 false값을 주고, 출력하면 팰린드롬인지 아닌지 알 수 있다. if (n.charAt(i) != n.charAt(len-i-1)) { flag = false; } } System.out.println(flag); } } | cs |
출력 결과
출처
https://www.youtube.com/watch?v=gByou4ahmXs&list=PLVoihNyHW4xkm_KJ8_N8X7F6EQP4uSRyR&index=23
'Algorithm > 풀었던문제' 카테고리의 다른 글
알고리즘 기초 - 24( 평균과 비율 ) (0) | 2019.12.24 |
---|---|
알고리즘 기초 - 23 ( 문자열 뒤집기 ) (0) | 2019.12.24 |
알고리즘 기초 - 21 ( 중복된 수 제거 ) (0) | 2019.12.23 |
알고리즘 기초 - 20 ( 3.6.9 게임 ) (0) | 2019.12.20 |
알고리즘 기초 - 19 ( 거듭제곱 ) (0) | 2019.12.20 |