• Home

My Codegate

  • Home

백준 29701 모스 부호 자바 문제풀이

2023/12/12 Posted by Codegate Java No Comments

문제 링크

입력으로 들어올 문자열 갯수를 받은 뒤, 모스 부호를 받아 위에 있는 값들과 치환시켜서 출력해야 하는데, 문제 자체는 단순하지만 모든 모스 부호를 입력해야 하기 때문에 상당히 고통스럽다

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

public class MorseCode {

  public static HashMap<String, String> makeMorseMap() {
    HashMap<String, String> map = new HashMap<>();
    map.put(".-", "A");
    map.put("-...", "B");
    map.put("-.-.", "C");
    map.put("-..", "D");
    map.put(".", "E");
    map.put("..-.", "F");
    map.put("--.", "G");
    map.put("....", "H");
    map.put("..", "I");
    map.put(".---", "J");
    map.put("-.-", "K");
    map.put(".-..", "L");
    map.put("--", "M");
    map.put("-.", "N");
    map.put("---", "O");
    map.put(".--.", "P");
    map.put("--.-", "Q");
    map.put(".-.", "R");
    map.put("...", "S");
    map.put("-", "T");
    map.put("..-", "U");
    map.put("...-", "V");
    map.put(".--", "W");
    map.put("-..-", "X");
    map.put("-.--", "Y");
    map.put("--..", "Z");
    map.put(".----", "1");
    map.put("..---", "2");
    map.put("...--", "3");
    map.put("....-", "4");
    map.put(".....", "5");
    map.put("-....", "6");
    map.put("--...", "7");
    map.put("---..", "8");
    map.put("----.", "9");
    map.put("-----", "0");
    map.put("--..--", ",");
    map.put(".-.-.-", ".");
    map.put("..--..", "?");
    map.put("---...", ":");
    map.put("-....-", "-");
    map.put(".--.-.", "@");
    return map;
  }

  public static void main(String[] args) throws IOException {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    int count = Integer.parseInt(br.readLine());
    String[] split = br.readLine().split(" ");
    HashMap<String, String> map = makeMorseMap();

    StringBuilder s = new StringBuilder();
    for (String value : split) {
      s.append(map.get(value));
    }
    System.out.println(s.toString());
  }
}

문제 풀이 자체는 단순하게 모스 부호를 map에 넣어준 뒤, 처음 입력받은 횟수만큼 for 문을 돌려주되, 입력받은 값을 split으로 쪼개서 해당 값을 map의 get 메소드를 이용해 찾은 뒤 붙여 나가다가, for문 다 돌리고 나면 출력해주면 간단하게 끝이다

문제 풀이보다 수작업으로 넣어야 하는 모스 부호가 정말 많기 때문에, 여기서 실수나서 틀리는 것을 주의해야 한다.

No Comments
0

Leave a Reply Cancel Reply

Introduction

My Codegate

Latest Posts

  • Google Search Console API 연동방법
  • 인텔리제이 Gradle Dependency 최신 버전 보는 방법
  • Wallet-Tracker 개발일지
  • Moralis API 자바로 호출방법
  • IntelliJ Commit 후 Push 따로 하는 방법

Categories

  • My Project (4)
  • Java (42)
  • Algorithm (161)
    • Java (152)
    • Algorithm Knowledge (3)
    • Algorithm site usage (6)
  • Vue.js (1)
  • Spring (4)
  • Docker (2)
  • IntelliJ (20)
  • Uncategorized (7)

Recent Comments

  • Codegate on Hello world!
  • A WordPress Commenter on Hello world!

© 2025 — mycodegate.com

Prev Next