(푸는중임)
rt lt 둘다 알파벳일때 서로 위치를 바꿀 수 있다.
만약 rt가 가르키는 곳이 알파벳이 아니라면 한칸 이동 (lt일 경우에도)
rt가 lt보다 크지 않을 때까지 반복한다.
Scanner scanner = new Scanner(System.in);
String str = scanner.nextLine();
// 대소문자 구분 없으므로 모두 대문자로 변환
// 정규식 사용 (replaceAll만 정규식 사용가능)
// 대문자 A-Z까지가 아니면
str = str.toUpperCase().replaceAll("[^A-Z]","");
String tmp = new StringBuilder(str).reverse().toString();
if(str.equals(tmp)){
System.out.println("YES");
}else{
System.out.println("NO");
}
오로지 알파벳만,대소문자 구분x 라는 규칙이 있으므로, 주어진 문자열을 모두 대문자로 전환했다.
replaceAll과 정규식을 사용해 알파벳이외의 문자는 ""이거로 처리했다.
stringBuilder로 거꾸로 해서 기존 문자열과 비교했다.
StringBuilder sb = new StringBuilder("abc");
sb.append("def");
System.out.print(sb.toString()); // 출력하기 위해선 string으로 해준다.
System.out.print(sb.reverse.toString())); // 거꾸로
for(int i=0; i<arr.length; i++){
if(arr[i].equals("#")){
binary += "1";
}else{
binary+="0";
}
}
String ans="";
for(int i=0; i<n; i++){
String ascii = binary.substring(i*7,(i*7)+7);
System.out.print((char)Integer.parseInt(ascii,2));
}
암호를 문자배열로 받고 0과1로 바꿔준다.
(replaceAll로 하려 했지만, *<-이거에서 좀 이상해져서 일일이 바꿔줬다..)
substring을 사용하여 7개씩 n번 나눠주고
Integer.parseInt()로 2진수를 10진수로 바꾸어준다.
숫자를 해당 아스키코드로 출력해준다.