🔎

답안

// 문제1의 답안입니다. import java.util.HashMap; public class Test { public static void main(String[] args) { String text = "ABCABCFFDD"; System.out.println(solution(text)); } public static String solution(String text) { HashMap<Character, String> map = new HashMap<Character, String>(); map.put('A', "!"); map.put('B', "@"); map.put('C', "%"); map.put('D', "J"); map.put('E', "L"); map.put('F', "K"); String answer = ""; for (int i = 0; i < text.length(); i++) { answer += map.get(text.charAt(i)); } return answer; } }
 

1. 문제 파악

  1. 한 문자를 치환하는 다른 문자가 있습니다. 치환을 위해서 key - value형태의 자료구조를 사용해야 하기 때문에 Hash를 이용해서 문제를 풀 수 있습니다.
  1. 유사한 문제들이기 때문에 풀이는 문제 1에 대해서만 제공합니다.
 

2. 풀이

  1. key는 Character형, value는 String형인 HashMap을 선언합니다. key의 경우에는 입력으로 주어지는 문자열의 문자에 대응하기 위해 Character형으로 선언하였고, value의 경우에는 결과값이 String으로 반환돼야 하기 때문에 String으로 선언하였습니다.
    1. HashMap<Character, String> map = new HashMap<Character, String>();
       
  1. map에 문제 조건에 따른 치환암호를 입력합니다.
    1. map.put('A', "!"); map.put('B', "@"); map.put('C', "%"); map.put('D', "J"); map.put('E', "L"); map.put('F', "K");
       
  1. 입력 문자열의 길이만큼 반복문을 돌면서 문자에 대응하는 치환 암호를 찾아낸 뒤, 결과 값이 될 answer 문자열에 더해줍니다.
    1. String answer = ""; for (int i = 0; i < text.length(); i++) { answer += map.get(text.charAt(i)); }