알고리즘 문제풀이/백준

#4583 : 거울상

모항 2022. 1. 19. 17:27

 

풀이방법

2022.01.19

먼저 주어진 문자열의 거울상이 출력 가능한지 여부를 판단한다.

여기에는 int 타입 변수 v를 사용하였다.

 

v의 초기값을 1로 설정한다.

주어진 문자열의 모든 문자를 살펴보면서, 거울상을 출력할 수 없는 문자가 하나라도 발견되면 v의 값을 0으로 설정한다.

 

v의 값이 0으로 정해지면 "INVALID"를 출력한다.

v의 값이 1로 정해지면 주어진 문자열을 마지막 글자부터 거꾸로 방문하면서 해당 글자의 거울상 문자를 즉시 화면에 하나씩 출력한다.

 

입력의 끝을 나타내는 "#"이 입력될 때까지 이를 반복한다.

 

코드

Java(2022.01.19)

import java.io.*;

public class Main {

	public static void main(String[] args) throws IOException{
		// TODO Auto-generated method stub
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		while(true) {
			
			String input = br.readLine();
			
			//#이 입력되면 프로그램 종료
			if(input.contentEquals("#")) {
				System.exit(0);	
			}
			
			char c;
			int v = 1;
			//거울상으로 표현 가능한지부터 판단
			for(int i = 0; i<input.length();i++) {
				c = input.charAt(i);
				if(c!='i' &&c!='o' &&c!='v' &&c!='w' &&c!='x' &&c!='b' &&c!='d' &&c!='p' &&c!='q')
					v = 0;
			}
			for(int i = input.length()-1; i>=0; i--) {
				if(v==0) {System.out.print("INVALID"); break;}
				c = input.charAt(i);
				if(c == 'b') System.out.print("d");
				else if(c == 'd') System.out.print("b");
				else if(c == 'p') System.out.print("q");
				else if(c == 'q') System.out.print("p");
				else System.out.print(c);
			}
			
			System.out.println();
			
		}
		


	}

}

 

'알고리즘 문제풀이 > 백준' 카테고리의 다른 글

#11091 : 알파벳 전부 쓰기  (0) 2022.01.21
#6996 : 애너그램  (0) 2022.01.21
#15904 : UCPC는 무엇의 약자일까?  (0) 2022.01.19
#1026 : 보물  (0) 2022.01.14
#11656 : 접미사 배열  (0) 2022.01.14