코딩테스트 준비/SWEA
[JAVA][D3] 10804. 문자열의 거울상
AtoZ 개발자
2021. 3. 2. 23:39
반응형
문제
‘b’, ‘d’, ‘p’, ‘q’로 이루어진 문자열이 주어진다. 이 문자열을 거울에 비추면 어떤 문자열이 되는지 구하는 프로그램을 작성하라.
예를 들어, “bdppq”를 거울에 비추면 “pqqbd”처럼 나타날 것이다.
[입력]
첫 번째 줄에 테스트 케이스의 수 T가 주어진다.
각 테스트 케이스의 첫 번째 줄에는 ‘b’, ‘d’, ‘p’, ‘q’만으로 이루어진 하나의 문자열이 주어진다. 문자열의 길이는 1이상 1000이하이다.
[출력]
각 테스트 케이스마다 주어진 문자열을 거울에 비춘 문자열로 출력한다.
예시
풀이
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;
class Solution
{
//전역변수
public static Map<Character, Character> map = new HashMap<Character, Character>();
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int T = Integer.parseInt(br.readLine());
//문자 케이스 등록
map.put('p', 'q');
map.put('q', 'p');
map.put('b', 'd');
map.put('d', 'b');
for(int i=1;i<=T;i++) {
String inputStr = br.readLine();
System.out.println("#"+i+" "+ mirror(inputStr));
}
}
public static String mirror(String inputStr) {
StringBuilder sb = new StringBuilder();
//문자의 끝 부분부터 접근하여 반대문자를 출력한다.
for(int i = inputStr.length()-1;i>=0;i--) {
sb.append(map.get(inputStr.charAt(i)));
}
return sb.toString();
}
}
반응형