life is egg

특정단어 뒤집기 본문

알고리즘/개인공부

특정단어 뒤집기

삶은계란진재혁 2023. 2. 10. 15:19
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;
    }

그래서 나온 풀이 .. 깔끔하다 ...

'알고리즘 > 개인공부' 카테고리의 다른 글

회문 문자열  (0) 2023.03.21
중복문자제거  (0) 2023.03.20
단어 뒤집기  (0) 2023.02.07
문장 속 단어  (0) 2023.02.06
대소문자 변환  (0) 2023.02.01
Comments