학이시습
[프로그래머스] 0단계_모스부호 (1) (Java) 본문
문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/120838?language=java
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제 설명
머쓱이는 친구에게 모스부호를 이용한 편지를 받았습니다. 그냥은 읽을 수 없어 이를 해독하는 프로그램을 만들려고 합니다. 문자열 letter가 매개변수로 주어질 때, letter를 영어 소문자로 바꾼 문자열을 return 하도록 solution 함수를 완성해보세요.
작성한 코드
class Solution {
public String solution(String letter) {
String answer = "";
String morse[] = { ".-", "-...", "-.-.", "-..", ".", "..-.", "--.",
"....", "..", ".---", "-.-", ".-..", "--", "-.",
"---", ".--.", "--.-", ".-.", "...", "-", "..-",
"...-", ".--", "-..-", "-.--", "--.." };
String splitedLetter[] = letter.split(" ");
for (int i = 0; i < splitedLetter.length; i++) {
for (int j = 0; j < morse.length; j++) {
if (splitedLetter[i].equals(morse[j])) {
answer += (char)('a' + j);
break;
}
}
}
return answer;
}
}
풀이
- morse 배열에 모스부호를 저장합니다
- splitedLetter 배열에 letter을 공백을 기준으로 나눠서 저장합니다.
- splitedLetter 배열 길이만큼 반복합니다
- morse의 길이만큼 반복합니다
- 만약 splitedLetter[i]의 문자열과 morse[j]의 문자열이 같으면
- answer에 문자 'a'와 j를 더한 값(ASCII 코드 사용)을 추가하고
- 안의 for문을 빠져나옵니다.
- 만약 splitedLetter[i]의 문자열과 morse[j]의 문자열이 같으면
- morse의 길이만큼 반복합니다
사용한 함수
split()
입력받은 정규식 또는 특정 문자를 기준으로 문자열을 나누는 함수
String splitedLetter[] = letter.split(" ");
실행 결과
'Coding test > Programmers' 카테고리의 다른 글
[프로그래머스] 2단계_최솟값 만들기 (JavaScript) (0) | 2025.04.30 |
---|---|
[프로그래머스] 2단계_최솟값 만들기 (Java) (0) | 2025.04.30 |
[프로그래머스] 4단계_서울에 위치한 식당 목록 출력하기 (Oracle) (2) | 2025.04.10 |
[프로그래머스] 0단계_간단한 논리 연산 (Java) (0) | 2025.04.09 |
[프로그래머스] 0단계_특정 문자열로 끝나는 가장 긴 부분 문자열 찾기 (Java) (0) | 2025.04.08 |