티스토리 뷰
이문제는 해시문제이다. 해시 카테고리에 있어서 해시맵...? 해시테이블..? 써야하나,,,? 라고 생각하면서 해시 알고리즘에 대한 기본지식이 많이 부족하구나라고 깨달았다. 시간을 내서 한번 정리해봐야할것 같다.
문제풀이
-길이가 작은 숫자가 길이가 긴 숫자의 접두어가 될 수 있기 때문에 길이순, 후 숫자으로 정렬.
-숫자의 포함여부를 contains()를 통해 확인.
-포함시 answer을 false로 바꾸고 return
※접두어만 확인하는것이기 때문에 정렬되지 않은 상태에서는 쓸 수 없다!
다른사람들의 풀이를 보니 startWith()도 사용할 수 있겠더라,,,
package programers;
import java.util.Arrays;
public class PhoneNumList {
public static void main(String[] args) {
boolean answer = true;
String[] phone_book = {"12", "123", "1235", "567", "88"};
Arrays.sort(phone_book);
for(int i=1;i<phone_book.length;i++){
//길이가 작은데 붙어있는 경우에 접두어 포함의 가능성이 있음
//이경우만 확인해줌
if(phone_book[i-1].length()<phone_book[i].length()){
//접두어일 경우
if(phone_book[i].contains(phone_book[i-1]))
answer= false; // 프로그래머스에서는 요기서 리턴해주면됨
}
}
System.out.println(answer);
}
}
+다른사람의 풀이를 보니 if(phone_book[i-1].length()<phone_book[i].length()) 이부분은 필요가 없더라는,,, 이미 정렬하며 체크가 된 것 같다...ㅎ
'CS공부 > 알고리즘&문제풀이' 카테고리의 다른 글
[프로그래머스]힙(Heap):라면공장(java) (0) | 2020.06.28 |
---|---|
[백준 17140]이차원 배열과 연산/삼성 sw역량 테스트 기출(java) (0) | 2020.06.21 |
[프로그래머스]완전탐색:숫자 야구(java) (0) | 2020.06.17 |
[프로그래머스]DFS:여행경로(java) (0) | 2020.06.10 |
[프로그래머스]DFS:단어변환(java) (0) | 2020.06.09 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- java
- 운영체제
- Spring
- 채팅
- 분리 집합
- git
- BFS
- 정렬
- 프로그래머스
- 최소 스패닝 트리
- 코딩테스트
- Stomp
- DP
- websocket
- sockjs
- 백준
- 완전탐색
- OS
- 알고리즘
- 자바
- Oracle
- MST
- SWEA
- programers
- dfs
- Heap
- 삼성 sw역량 테스트
- 삼성 sw역량테스트
- Baekjoon
- JavaScript
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함