Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 호스팅
- 뮤텍스란?
- 호스팅이란?
- Dijkstra Algorithm
- 싸피 면접 후기
- 프록시서버
- Proxy
- 동기화
- 세마포어
- 다익스트라 알고리즘
- floyd-warshall
- 싸피
- 뮤텍스
- Synchronization
- 최단 경로
- Proxy Server
- 세마포어와 뮤텍스
- 삼성 청년 SW 아카데미
- 세마포어란?
- 웹 호스팅
- 서버 호스팅
- 클라우드 서버
- 프록시
- 플로이드 워셜
- SSAFY
- 플로이드 와샬
- 세마포어와 뮤텍스의 차이
- 싸피 합격
- 다익스트라
Archives
- Today
- Total
어제의 나보다 성장한 오늘의 나
[프로그래머스][Level2][Java] 압축 본문
programmers.co.kr/learn/courses/30/lessons/17684
문제풀이
사전 추가 배열을 쓸까 생각하였지만 언제까지 사전을 추가 할지 몰라서 list를 생각하게 되었고
검색을 할려고 하니깐 불편한거 같아서 최종적으로 사전관리는 HashMap으로 하였다.
처음 A~Z를 초기화 하는 작업을 해야되며 while문으로 본문에 나와있는 과정 2~5까지 반복하였다.
사전에 있을시 계속 index를 증가시키며 없을때까지 찾고 없다면 출력값을 list에 저장하고
단어를 사전에 등록 및 초기화 작업을 해주었다.
코드
import java.util.*;
class Solution {
public int[] solution(String msg) {
List<Integer> list = new ArrayList();
HashMap<String,Integer> hm = new HashMap<String,Integer>();
//초기화
for(int i=1; i<=26; i++){
hm.put(Character.toString((char)64+i),i);
}
int index =0;
int temp =0; // 출력 색인번호 저장
String str ="";
while(true){
if(msg.length()==index) {
list.add(temp);
break;
}
str += msg.charAt(index);
if(hm.containsKey(str)){ // 사전에 있을시
temp = hm.get(str);
index++;
}else{ // 사전에 없을시 사준 추가 밑 출력 저장
hm.put(str, hm.size()+1);
str ="";
list.add(temp);
}
}
int[] answer = new int[list.size()];
for(int i=0; i<list.size(); i++){
answer[i] = list.get(i);
}
return answer;
}
}
'알고리즘 > 프로그래머스(Programmers)' 카테고리의 다른 글
[프로그래머스][Level2][Java] 타겟 넘버 (0) | 2020.12.26 |
---|---|
[프로그래머스][Level2][Java] 카펫 (0) | 2020.12.25 |
[프로그래머스][Level3][Java] 이중우선순위큐 (0) | 2020.12.25 |
[프로그래머스][Level3][Java] 네트워크 (0) | 2020.12.24 |
[프로그래머스][Level2][Java] 위장 (0) | 2020.12.24 |
Comments