상세 컨텐츠

본문 제목

[프로그래머스] [3차] 압축

💯ProblemSolving/문제 풀이-Java

by :부셔져버린개발자 2025. 2. 4. 08:56

본문

       문제 요약        

- 문제

https://school.programmers.co.kr/learn/courses/30/lessons/17684

 

         아이디어        

 

인덱스 잘 체크해서 구현 

 

         소스코드        

 

import java.util.*;
import java.io.*;
class Solution {
    static Map<String, Integer> dict;
    
    static {
        dict = new HashMap<>();
        for(int i = 0; i < 26; i++){
            dict.put(""+(char)('A'+i), i+1);        
        }
    }
    
    public int[] solution(String msg) {
        List<Integer> ans = new ArrayList<>();
        int i = 0;
        while(i < msg.length()){
            int j = i+1;
            while(j <= msg.length()) {
                String maxLenStr = msg.substring(i, j);

                if(!dict.keySet().contains(maxLenStr)) {
                    dict.put(maxLenStr, dict.size()+1);
                    break;
                }
                j+=1;
            }
            ans.add(dict.get(msg.substring(i,j-1)));
            i = j-1;
        }    
        return ans.stream().mapToInt(x->x).toArray();
    }
}



 

728x90

관련글 더보기