Notice
Recent Posts
Recent Comments
Link
개발자는 기록이 답이다
자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비(문자열_회문 문자열) 본문
https://cote.inflearn.com/contest/10/problem/01-07
(위의 링크는 인프런 로그인 후, 해당 강의를 사지 않으면 접속이 되지 않습니다)
7. 회문 문자열
예시 입력 1
gooG
예시 출력 1
YES
내가 푼 풀이 (Time: 162ms Memory: 27MB)
해당 str을 거꾸로 순회하면서 StringBuilder에 집어넣고, 입력값과 일치하는지 확인한다.
import java.util.Scanner;
public class Main {
public String solution(String str) {
String upperCase = str.toUpperCase();
StringBuilder sb = new StringBuilder();
for (int i = upperCase.length() -1; i >= 0 ; i--) {
sb.append(upperCase.charAt(i));
}
if (upperCase.equals(String.valueOf(sb)))
return "YES";
else
return "NO";
}
public static void main(String[] args) {
Main main = new Main();
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
System.out.println(main.solution(str));
}
}
강의 답안 1 (Time: 152ms Memory: 27MB)
1. 길이를 2로 나눈 몫의 전까지를 계산하면 된다
2. 앞에 인덱스값과 끝 인덱스 값이 같은지 비교
import java.util.Scanner;
public 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++) {
// str.charAt(len-i-1) 이게 중요 포인트!
if(str.charAt(i) != str.charAt(len-i-1)) return "NO";
}
return answer;
}
public static void main(String[] args) {
Main main = new Main();
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
System.out.println(main.solution(str));
}
}
강의 답안 2 (Time: 168ms Memory: 27MB)
- equalsIgnoreCase()함수를 사용한다
import java.util.Scanner;
public class Main {
public String solution(String str) {
String answer = "NO";
String tmp = new StringBuilder(str).reverse().toString();
if(str.equalsIgnoreCase(tmp)) answer = "YES";
return answer;
}
public static void main(String[] args) {
Main main = new Main();
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
System.out.println(main.solution(str));
}
}
'알고리즘 > 인프런 - Java알고리즘 입문' 카테고리의 다른 글
자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비(문자열_숫자만 추출) (0) | 2023.08.28 |
---|---|
자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비(문자열_유효한 팰린드롬) (0) | 2023.08.28 |
자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비(문자열_중복 문자 제거) (0) | 2023.08.28 |
자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비(문자열_특정 문자 뒤집기) (0) | 2023.08.27 |
자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비(문자열_단어 뒤집기) (0) | 2023.08.26 |