성장일기 : 문과생의 개발 여정 (งᐖ)ว ( ᐛ )و

문자열 Palindrome(회문(回文) 퀴즈 본문

백엔드개발/JAVA Quiz. zip

문자열 Palindrome(회문(回文) 퀴즈

hyemi_flora 2023. 11. 9. 09:59

0912수업내용_

Palindrome(회문(回文))

        사용자가 단어를 입력하면 해당 단어가 좌우대칭인지 판별해주는 프로그램을 만들어보세요.

        

        해결방법

        1> 맨 앞부터 글자를 하나씩 비교해 나간다(절반까지만)

        2> 단어를 뒤집고 비교해서 똑같으면 좌우대칭이다

고민의 흔적...

 

// String reverse = word(word.charAt(word.length() - 1 - word.length())); // >> word에 에러뜸

//

// if(word == reverse) {

// System.out.println("회문입니다.");

// } else {

// System.out.println("회문이 아닙니다");

// }

 

 

 

/*

거꾸로 :

System.out.println();

for (int i = 0; i < str.length(); ++i) {

System.out.print(str.charAt(str.length() - 1 - i));

}

 

제대로:

 

for (int i = 0; i< text2.length();++i) {

char c = text2.charAt(i);

System.out.print(text2.charAt(i));

}

 

이 두 for 문이 같다면 "좌우대칭입니다." 다르다면 "좌우대칭이 아닙니다."

 

*/

}

 

}

 

For 안에 계속 돌려서 3 이상 숫자가 나오는 것…

 

 for 밖으로 빼야한다.

 

 

=====> 풀이법 3가지

1. 단어의 맨 앞 인덱스부터 절반 인덱스까지 만 검사

2.단어를 뒤집고 비교해서 똑같으면 좌우대칭이다

++)

String reversed = "";

                // " "; 이렇게 공백이 있도록 설정을 해서 뒤집은 문자열 reversed를 초기화할 때 공백 문자열로 시작하고,이후에 문자를 추가하는 방식으로 진행된 

                // 그렇게 되면 뒤집은 문자열의 첫 번째 문자가 공백이 되어버림 으로 자꾸 좌우대칭이 아니라고 나온 것이다.

 

                for (int i = 0; i < len; ++i) {

                        reversed += word.charAt(len - 1 - i);

                }

                System.out.printf("원래글자 %s, 뒤집은글자 %s\n", word, reversed);

 

                if (word.equals(reversed)) {

                        System.out.println("좌우대칭입니다.");

                } else {

                        System.out.println("좌우대칭이 아닙니다.");

                }

 

3. boolean 타입풀이

 

'백엔드개발 > JAVA Quiz. zip' 카테고리의 다른 글

문자열 Include Uppercase & Include E Quiz  (1) 2023.11.09
문자열 Changecase 퀴즈  (0) 2023.11.09
JAVA for문 QUIZ 4>  (0) 2023.10.26
JAVA FOR QUIZ 3>  (0) 2023.10.26
JAVA - for문 Quiz 1,2>  (0) 2023.10.26