Coding Planet
7. ํ๋ฌธ ๋ฌธ์์ด(Palindrome) - charAt(), StringBuilder().reverse().toString(), equals() ๋ณธ๋ฌธ
๐ ์ฝ๋ฉํ
์คํธ/์๊ณ ๋ฆฌ์ฆ
7. ํ๋ฌธ ๋ฌธ์์ด(Palindrome) - charAt(), StringBuilder().reverse().toString(), equals()
jhj.sharon 2023. 5. 8. 13:30๋ฐ์ํ
1. ๋ฌธ์ ์๊ตฌ์ฌํญ
- ์์์ ์ฝ์ ๋๋ ๋ค์์ ์ฝ์ ๋๋ ๊ฐ์ ๋ฌธ์์ด์ ํ๋ฌธ ๋ฌธ์์ด์ด๋ผ๊ณ ํฉ๋๋ค.
- ๋ฌธ์์ด์ด ์ ๋ ฅ๋๋ฉด ํด๋น ๋ฌธ์์ด์ด ํ๋ฌธ ๋ฌธ์์ด์ด๋ฉด "YES", ํ๋ฌธ ๋ฌธ์์ด์ด ์๋๋ฉด “NO"๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์.
- ๋จ ํ๋ฌธ์ ๊ฒ์ฌํ ๋ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์์ต๋๋ค.
2. ๋ด ํ์ด
- ์ด์ ๋ฌธ์ ์ธ ๋จ์ด ๋ค์ง๊ธฐ์์ ์ฌ์ฉํ๋ ๋ก์ง์ ๊ทธ๋๋ก ์ฌ์ฉํด์ ํ ์ ์์๋ค.
- ๋ค๋ง if๋ฌธ์ ๋ง๋ค ๋ '๊ฐ์๊ฒฝ์ฐ'์ '๋ค๋ฅธ ๊ฒฝ์ฐ' ์ด๋ค ๊ฒ์ด ๊ธฐ์ค์ด ๋์ด์ผํ๋๊ฐ ๊ณ ๋ฏผํ๋ฉด์ ํค๋งธ๋ค.
- ์ฌ์ค ๋ฐ๊พผ๋ค๊ณ ํฌ๊ฒ ๋ค๋ฅธ๊ฑด์๋์ง๋ง ์ด๋ค ๋ณ์๋ฅผ ์ฆ๊ฐ ๋ฐ ๊ฐ์์ํค๋๊ฒ ๋ค๋ก ๊ฐ๋๊ฒ ๊น๋ํ
import java.util.Scanner;
public class Palindrome {
public String solution(String str) {
//1) ์ ๋ฌ๋ฐ์ ๋ฌธ์ ๋๋ฌธ์๋ก ์ ํ
String s = str.toUpperCase();
//2) ๋น๊ต๋ฅผ ์ํด ๋ฌธ์์ด์ ๋ฌธ์ ๋ฐฐ์ด๋ก ๋ฐ๊พธ๊ธฐ
char[] c = s.toCharArray();
//3) ํฌ์ธํฐ ์ค์
int lt = 0, rt = c.length-1;
//4) ๋ฐฐ์ด์ ๋๋ฉด์ ์๋ ๋ฌธ์๋ถํฐ ๋น๊ตํ๊ธฐ
while(lt<rt) {
if(c[lt] != c[rt]) {
return "NO";
}
lt++;
rt--;
}
return "YES";
}
public static void main(String[] args) {
Palindrome T = new Palindrome();
Scanner kb = new Scanner(System.in);
String str = kb.nextLine();
System.out.println(T.solution(str));
}
}
3. ๋ค๋ฅธ ํ์ด(1) - charAt()
- ํ๋ฌธ์ ์์ผ๋ก ์ฝ์ผ๋ ๋ค๋ก ์ฝ์ผ๋ ๋์ผํ๋ฏ๋ก ๋น๊ตํ ๋ ๋ฌธ์์ด์ ์ ๋ฐ์ผ๋ก ์๋ผ์ ๋น๊ตํด๋ ๋๋ค(len/2)
- ์ฒซ๋ฒ์งธ ๋ฌธ์์ ๋ง์ง๋ง ๋ฌธ์๋ฅผ charAt์ผ๋ก ๋น๊ตํ ์ ์๋ค.
import java.util.Scanner;
public class Palindrome {
public String solution(String str) {
str=str.toUpperCase();
int len=str.length();
for(int = 0; i<len/2; i++){
if(str.charAt(i)) !=str.charAt(len-i-1)) return "NO";
}
return "YES";
}
public static void main(String[] args) {
Palindrome T = new Palindrome();
Scanner kb = new Scanner(System.in);
String str = kb.nextLine();
System.out.println(T.solution(str));
}
}
4. ๋ค๋ฅธ ํ์ด(2) - StringBuilder().reverse().toString();
- ์์ ์ค๋ช ํ ๊ฒ ์ฒ๋ผ ํ๋ฌธ์ ์ ๋ค๋ก ์ฝ์ด๋ ๋์ผํด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋ค์ง์ด๋ ๋ฌธ์์ด์ด ๊ฐ์์ผ ํ๋ค.
- ๋ฐ๋ผ์ ๋ค์ง์ ๋ฌธ์์ด์ด ์ฒ์ ๋ฌธ์์ด๊ณผ ๋์ผํด์ผํ๋ค.
- ๋ฌธ์์ด์ equals()๋ก ๋น๊ตํ๋ค
import java.util.Scanner;
public class Palindrome {
public String solution(String str) {
String tmp = new StringBuilder(str).reverse().toString();
if(str.equals(tmp)) return "YES";
else return "No";
}
public static void main(String[] args) {
Palindrome T = new Palindrome();
Scanner kb = new Scanner(System.in);
String str = kb.nextLine();
System.out.println(T.solution(str));
}
}
๋ฐ์ํ
'๐ ์ฝ๋ฉํ ์คํธ > ์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Comments