Notice
Recent Posts
Recent Comments
Link
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
관리 메뉴

UpDown Dev Story

알고리즘 연습 - 특정 문자 뒤집기 본문

Algorithm

알고리즘 연습 - 특정 문자 뒤집기

updown 2021. 5. 21. 11:10

아래 강의를 보면서 연습하고 기록하고 있습니다

https://www.inflearn.com/course/%EC%9E%90%EB%B0%94-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EB%AC%B8%EC%A0%9C%ED%92%80%EC%9D%B4-%EC%BD%94%ED%85%8C%EB%8C%80%EB%B9%84

 

자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 - 인프런 | 강의

자바(Java)로 코딩테스트를 준비하시는 분을 위한 강좌입니다. 코딩테스트에서 가장 많이 출제되는 Top 10 Topic을 다루고 있습니다. 주제와 연동하여 기초문제부터 중급문제까지 단계적으로 구성

www.inflearn.com

 

문제

소스코드

public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String inputString = sc.next();

		char[] returnValue = inputString.toCharArray();
		int lt = 0;
		int rt = inputString.length() - 1;

		while (lt < rt) {
			if (!Character.isAlphabetic(returnValue[lt])) {
				lt++;
			} else if (!Character.isAlphabetic(returnValue[rt])) {
				rt--;
			} else {
				char tmp = returnValue[lt];
				returnValue[lt] = returnValue[rt];
				returnValue[rt] = tmp;
				lt++;
				rt--;
			}
		}
		System.out.println(returnValue);
	}

정답해설

  1. 사용자에게 문자를 입력받고
  2. while loop 를 돌린다 (lt가 rt보다 작으면)
  3. 사용자가 입력한 문자에서 제일 왼쭉부터 검색한다 
  4. 알파벳이 아니면 한칸 오른쪽으로 이동
  5. 사용자가 입력한 문자에서 제일 오른쪽부터 검색한다 
  6. 알파벳이 아니면 한칸 왼쪽으로 이동
  7. 둘다 알파벳이 아니면 자리를 스왑하고 한칸씩 이동한다
Comments