문제 설명
https://school.programmers.co.kr/learn/courses/30/lessons/17684



제한 사항
문제 참고
입출력 예

풀이
import java.util.HashMap;
import java.util.ArrayList;
class Solution {
public int[] solution(String msg) {
ArrayList<Integer> answer = new ArrayList<>();
HashMap<String, Integer> indexMap = new HashMap<>();
int pre = 0, post = 1;
for (int i = 65; i < 91; i++)
indexMap.put(String.valueOf((char)i), i - 64);
while (post < msg.length()) {
if (!indexMap.containsKey(msg.substring(pre, post + 1))) {
answer.add(indexMap.get(msg.substring(pre, post)));
indexMap.put(msg.substring(pre, post + 1), indexMap.size() + 1);
pre = post++;
}
else post++;
}
answer.add(indexMap.get(msg.substring(pre, post)));
return answer.stream().mapToInt(i -> i).toArray();
}
}
후기
딱히 특별한건 없고 문제에서 하라는대로만 하면 된다. 맨 앞 인덱스부터 한 칸씩 이동하면서 문자열을 자르고 인덱스에 없는 문자열이 발견되면 그 인덱스의 전 인덱스까지의 문자열을 정답 리스트에 저장하고, 해당 인덱스까지의 문자열은 새로 등록하면 된다.
'코딩테스트 (프로그래머스) > Java' 카테고리의 다른 글
| [프로그래머스][JAVA][Lv. 2] 주차 요금 계산 (0) | 2023.09.24 |
|---|---|
| [프로그래머스][JAVA][Lv. 2] n진수 게임 (0) | 2023.09.23 |
| [프로그래머스][JAVA][Lv. 2] k진수에서 소수 개수 구하기 (0) | 2023.09.20 |
| [프로그래머스][Java][Lv. 2] 전화번호 목록 (0) | 2023.09.19 |
| [프로그래머스][JAVA][Lv. 2] 타겟 넘버 (0) | 2023.09.18 |