티스토리 뷰
움.. 다른방법을 생각해보려고 했으나 생각이 안나서 그냥 풀었는데 맞았던 문제!
java의 HashMap을알고 있다면 접근이 수월했을듯한 문제이다.
접근방법
1."A"-"Z"까지를 미리 HashMap에 넣는다-key를 String으로 사용,사전의 역할
2.주어진 String을 탐색하면서 사전에 있을경우 다음 인덱스 글자를 포함해서 go
3.사전에 없다면 이전 인덱스까지의 String에 해당하는 value를 사전에서 찾아 answer에 기록
접근방법은 간단하지만 index,i,j를 설정해주는것때문에 몇번 문제가 있었다;;
다른분들 코드를 보니 간단하고 깔끔하던데,,, 더 노력해야겠다!!
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
public class Solution{
public static void main(String[] args) {
// TODO Auto-generated method stub
String msg="TOBEORNOTTOBEORTOBEORNOT";//테스트 String
List<Integer> a = new ArrayList<Integer>();
//사전으로 사용될 map설정
HashMap<String,Integer> h = new HashMap<String,Integer>();
for(int i=1;i<='Z';i++){
h.put( Character.toString((char)('A'+i-1)),i);
}
int key=27;//다음 사전의 키를 설정
for(int i=0;i<msg.length();i++){
int idx=1;//substring의 끝 인덱스를 늘려주면서 확인
for(int j=i;j<idx+i;j++){
if(j==msg.length()) break;
//사전에 있는경우idx를 늘려 다음단어를 확인
if(h.containsKey(msg.substring(i, j+1))){
if(idx+i>=msg.length()){
a.add(h.get(msg.substring(i, j+1)));
i=j;
break;
}
idx++;
//사전에 없는 경우 답과 사전에 각각 추가
}else{
a.add(h.get(msg.substring(i, j)));
h.put(msg.substring(i, j+1), key++);
i=j-1;
break;
}
}
}
int[] answer = convertIntegers(a);
}
//List -> Array 변환 함수
public static int[] convertIntegers(List<Integer> integers)
{
int[] ret = new int[integers.size()];
for (int i=0; i < ret.length; i++)
{
ret[i] = integers.get(i).intValue();
System.out.print(ret[i]+" ");
}
return ret;
}
}
'CS공부 > 알고리즘&문제풀이' 카테고리의 다른 글
[백준 14889]스타트와 링크/삼성 sw역량 테스트 기출(java) (0) | 2020.05.28 |
---|---|
[백준 16234]인구이동(java) (0) | 2020.05.26 |
[SW Expert Academy 1767]프로세서 연결하기(java) (0) | 2020.05.25 |
[백준 15686]치킨배달/삼성 sw역량테스트 기출(java) (0) | 2020.05.17 |
[프로그래머스]2020카카오블라인드:괄호 변환(java) (0) | 2020.05.08 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 백준
- BFS
- websocket
- 삼성 sw역량테스트
- 알고리즘
- Stomp
- 완전탐색
- 프로그래머스
- Oracle
- java
- programers
- 분리 집합
- JavaScript
- 삼성 sw역량 테스트
- 운영체제
- 코딩테스트
- 자바
- Heap
- OS
- MST
- dfs
- Spring
- 채팅
- 정렬
- SWEA
- git
- 최소 스패닝 트리
- Baekjoon
- sockjs
- DP
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함