life is egg
특정단어 뒤집기 본문
package inflearn.String;
import java.util.Scanner;
public class 특정단어뒤집기 {
}
public class Main{
public static void main(String[] args) {
Main main = new Main();
Scanner scanner = new Scanner(System.in);
String input = scanner.next();
System.out.println(main.solution(input));
}
public StringBuffer solution(String input){
char[] chars = input.toCharArray();
int size = chars.length;
int count=0;
for (char aChar : chars) {
if(aChar>64 & aChar<91 || aChar>96 & aChar<123 ){
char a = chars[count];
char b = chars[size-1-count];
chars[count] =b;
chars[size-1-count] =a;
}
count++;
if(count ==size/2){
break;
}
}
StringBuffer answer = new StringBuffer();
for (char aChar : chars) {
answer.append(aChar);
}
return answer;
}
}
결국푸는데 실패했다.. 문제 이해를 못한게 큰듯...
아니 영어 만뒤집으라는데 앞에서 부터 비교해야하는거 아닌가
바꿀대상이 양쪽 모두 영어야지 뒤집는다고 써놓든가 불친절 +1점이다
FB
- if 와 elseif 이용해서 특수문자라면 증가 그리고 else에서 교환..?즉 둘다 거짓일때 else로 감!
- 정지시점은..lt<rt보다 작을경우만 ..~
- 알파벳인지 판별하는게 있다...
Character.isAlphabetic() - 배열을 스트링으로 바꾸기... String.valueof() ..
public String solution(String str){
String answer;
char[] s = str.toCharArray();
int lt =0,rt=str.length()-1;
while (lt<rt){
if(!Character.isAlphabetic(s[lt])) lt++;
else if(!Character.isAlphabetic(s[rt])) rt--;
else{
char tmp=s[lt];
s[lt]=s[rt];
s[rt]=tmp;
lt++;
rt--;
}
}
answer=String.valueOf(s);
return answer;
}
그래서 나온 풀이 .. 깔끔하다 ...
Comments