- 입문 - 모스부호(1)2023년 10월 30일 21시 03분 24초에 업로드 된 글입니다.작성자: oneseel
입문 - 모스부호(1)
문제설명
머쓱이는 친구에게 모스부호를 이용한 편지를 받았습니다. 그냥은 읽을 수 없어 이를 해독하는 프로그램을 만들려고 합니다. 문자열 letter가 매개변수로 주어질 때, letter를 영어 소문자로 바꾼 문자열을 return 하도록 solution 함수를 완성해보세요.
모스부호는 다음과 같습니다.morse = { '.-':'a','-...':'b','-.-.':'c','-..':'d','.':'e','..-.':'f', '--.':'g','....':'h','..':'i','.---':'j','-.-':'k','.-..':'l', '--':'m','-.':'n','---':'o','.--.':'p','--.-':'q','.-.':'r', '...':'s','-':'t','..-':'u','...-':'v','.--':'w','-..-':'x', '-.--':'y','--..':'z' }
제한사항
- 1 ≤ letter의 길이 ≤ 1,000
- return값은 소문자입니다.
- letter의 모스부호는 공백으로 나누어져 있습니다.
- letter에 공백은 연속으로 두 개 이상 존재하지 않습니다.
- 해독할 수 없는 편지는 주어지지 않습니다.
- 편지의 시작과 끝에는 공백이 없습니다.
입출력 예
입출력 예 설명
입출력 예 #1
- .... = h
- . = e
- .-.. = l
- .-.. = l
- --- = o
- 따라서 "hello"를 return 합니다.
입출력 예 #2
- .--. = p
- -.-- = y
- - = t
- .... = h
- --- = o
- -. = n
- 따라서 "python"을 return 합니다.
내 풀이
>> Map에 키에 모스부호를 넣고 값에 대응하는 문자를 넣었다.
>> StringBuilder의 객체 sb를 만들고, letter를 띄어쓰기 기준으로 나눈(split) 문자열들의 배열 words를 만든다.
>> 반복문을 통해 words에 있는 문자열 word를 sb객체에 넣어주는데 맵에 있는 값(value)을 넣어주고 sb를 반환한다.
class Solution { public String solution(String letter) { Map<String, Character> morse = new HashMap<>(); morse.put(".-", 'a'); morse.put("-...", 'b'); morse.put("-.-.", 'c'); morse.put("-..", 'd'); morse.put(".", 'e'); morse.put("..-.", 'f'); morse.put("--.", 'g'); morse.put("....", 'h'); morse.put("..", 'i'); morse.put(".---", 'j'); morse.put("-.-", 'k'); morse.put(".-..", 'l'); morse.put("--", 'm'); morse.put("-.", 'n'); morse.put("---", 'o'); morse.put(".--.", 'p'); morse.put("--.-", 'q'); morse.put(".-.", 'r'); morse.put("...", 's'); morse.put("-", 't'); morse.put("..-", 'u'); morse.put("...-", 'v'); morse.put(".--", 'w'); morse.put("-..-", 'x'); morse.put("-.--", 'y'); morse.put("--..", 'z'); StringBuilder sb = new StringBuilder(); String[] words = letter.split(" "); for (String word : words) { sb.append(morse.get(word)); } return sb.toString(); } }
https://school.programmers.co.kr/learn/courses/30/lessons/120838
'코딩테스트' 카테고리의 다른 글
입문 - 구슬을 나누는 경우의 수 (0) 2023.10.30 입문 - 가위 바위 보 (1) 2023.10.30 입문 - 개미 군단 (0) 2023.10.30 입문 - 순서쌍의 개수 (0) 2023.10.30 입문 - 진료 순서 정하기 (0) 2023.10.30 댓글