make it simple
article thumbnail

문제:영어 알파벳과 특수문자로 구성된 문자열이 주어지면 영어 알파벳만 뒤집고,

특수문자는 자기 자리에 그대로 있는 문자열을 만들어 출력하는 프로그램을 작성하세요.

 

예제) 

         a#b!GE*T@S   -> S#T!EG*b@a

public static void main(String[] args) {
		problem5 prob = new problem5();
		Scanner sc = new Scanner(System.in);
		String word = sc.nextLine();

		System.out.println(prob.solution(word));

	}

	public String solution(String word) {
		String answer = "";
		char[] arr = word.toCharArray();
		int lt=0 , rt=arr.length-1; // 왼쪽, 오른쪽 문자열 나눔
		for(int i=0; i<arr.length;i++) {
			if(lt < rt) { // 중간에서 만나기전까지 for문 돌리기
				 if(!Character.isAlphabetic(arr[lt])) { // 왼쪽 문자가 특수문자일경우 인덱스 올려주기
					lt++;
				 }
				 else if(!Character.isAlphabetic(arr[rt])) { // 오른쪽 문자가 특수 문자일 경우 오른쪽 인덱스 내려주기
					rt--;
				 }
				 else { // 왼쪽 오른쪽 둘다 특수 문자가 아닌경우 자리 바꿔준다
					char letter = arr[lt];
					arr[lt] = arr[rt];
					arr[rt] = letter;
					lt++;
					rt--;
				 }
			}
		}
		answer = String.valueOf(arr);
		return answer;

	}

실행결과 성공!

입력:  a#b!GE*T@S

출력:  S#T!EG*b@a

 

profile

make it simple

@keep it simple

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!