[99클럽 코테 스터디 5일차 TIL] 백준 29701 모스 부호

말하는 감자·2024년 11월 1일
0
post-thumbnail

99클럽 코테 스터디 5일차 TIL

💙 JAVA 비기너

📌 오늘의 학습 키워드

  • 해시

📌 공부한 내용

📍 오늘의 문제

📍 작성 코드

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.HashMap;

public class Main {

	public static void main(String[] args) throws IOException {
		
		HashMap<String, String> morseMap = new HashMap<>();
		morseMap.put(".-", "A");
		morseMap.put("-...", "B");
		morseMap.put("-.-.", "C");
		morseMap.put("-..", "D");
		morseMap.put(".", "E");
		morseMap.put("..-.", "F");
		morseMap.put("--.", "G");
		morseMap.put("....", "H");
		morseMap.put("..", "I");
	    morseMap.put(".---", "J");
	    morseMap.put("-.-", "K");
	    morseMap.put(".-..", "L");
	    morseMap.put("--", "M");
	    morseMap.put("-.", "N");
	    morseMap.put("---", "O");
	    morseMap.put(".--.", "P");
	    morseMap.put("--.-", "Q");
	    morseMap.put(".-.", "R");
	    morseMap.put("...", "S");
	    morseMap.put("-", "T");
	    morseMap.put("..-", "U");
	    morseMap.put("...-", "V");
	    morseMap.put(".--", "W");
	    morseMap.put("-..-", "X");
	    morseMap.put("-.--", "Y");
	    morseMap.put("--..", "Z");
	    morseMap.put(".----", "1");
	    morseMap.put("..---", "2");
	    morseMap.put("...--", "3");
	    morseMap.put("....-", "4");
	    morseMap.put(".....", "5");
	    morseMap.put("-....", "6");
	    morseMap.put("--...", "7");
	    morseMap.put("---..", "8");
	    morseMap.put("----.", "9");
	    morseMap.put("-----", "0");
	    morseMap.put("--..--", ",");
	    morseMap.put(".-.-.-", ".");
	    morseMap.put("..--..", "?");
	    morseMap.put("---...", ":");
	    morseMap.put("-....-", "-");
	    morseMap.put(".--.-.", "@");
	    
	    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
	    int count = Integer.parseInt(br.readLine());
	    String[] codes = br.readLine().split(" ");
	    
	    br.close();
	    
	    BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
	    
	    for (String code : codes) {
	    	bw.write(morseMap.get(code));
	    }
	    
	    bw.flush();
	    bw.close();
		
	}
}

📌 오늘의 회고

사실 이번 문제는 모스 부호를 정의하는 노가다가 제일 어렵지 문제 자체는 쉬웠다.

HashmapmorseMap에 문제에 나와있는 모스부호들을 하나하나 정성스레 put해줘서 모스부호 사전을 만들었다.

그리고 글자 수와 모스부호를 bufferedReader로 입력받아줬고 모스부호는 모스부호간의 간격인 공백에 따라 spilt()를 통해 분리해 문자열 배열 codes로 만들어줬다.

사실 모스부호가 연달아 나오고 글자 수로 알아서 구분하라는 건줄 알고 겁먹었는데 다행이 공백으로 분리가 되어 있었고 덕분에 글자 수는 입력받았지만 사용할 일이 없었다.😅

모스부호 배열인 codes를 foreach문을 통해 하나씩 꺼내어 morseMap에 키값으로 조회하고 값을 bufferedWriterbwwrite 해주었다.

마지막엔 bwflush()하여 안에 적힌 내용들을 출력시켜 주고 close()하며 마무리!!

profile
나는 말하는 감자다

0개의 댓글