[인프런] 01-05. 특정 문자 뒤집기

·2023년 11월 24일
0

Coding Test

목록 보기
39/39
post-thumbnail

🤔 코드 풀이

package practice.test.coding;

import java.util.Scanner;

public class WordFlipping2 {

	// 해당 문자가 알파벳인지 확인하는 메소드
	public static boolean isAlphabet(char c) {
		return (c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z');
	}

	public static void main(String[] args) {

		Scanner kb = new Scanner(System.in);
		String str = kb.next();
		kb.nextLine();

		// 입력받은 문자열 문자 배열로 변경
		char[] charArr = str.toCharArray();

		int start = 0;
		int end = charArr.length - 1;

		while(start < end) {

			// 왼쪽 문자가 특수문자인지 확인
			if(!isAlphabet(charArr[start])) start++;
				
			// 오른쪽 문자가 특수문자인지 확인
			else if (!isAlphabet(charArr[end])) end--;
				
			// 해당 문자가 알파벳일 경우
			else {
				char tmp = charArr[start];
				charArr[start] = charArr[end];
				charArr[end] = tmp;

				start++;
				end--;
			}
		}
		
		System.out.println(charArr);
	}

}

✨ 실행 결과

문자가 알파벳일 경우에만 순서가 반전된다.

제일 왼쪽 문자와 제일 오른쪽 문자를 순서대로 특수문자인지 if-else if문으로 검사한 뒤 두 조건을 모두 통과했을 경우 좌우 반전을 시켜 주는 알고리즘이 핵심이었다. 👍

profile
풀스택 개발자 기록집 📁

0개의 댓글