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 |
Tags
- 자동화봇
- 티켓팅매크로
- 반려견 유기농 사료
- 부산 맛집
- 반려견 열사병
- 강아지 종류
- 티켓팅메크로
- 국비지원 예습
- 강아지 유기농 사료
- 반려견
- 동인천 맛집
- 신포동 맛집
- 쿠팡매크로
- 강아지 유기농
- 쿠팡메크로
- 반려견 종류
- 샤로수길 맛집
- 강아지 열사병
- 강아지 홀리스틱
- 반려견 홀리스틱
- 반려견 유기농
- 강아지
- 반려견 사료등급
- 서울대입구 맛집
- 닥스훈트
- 반려견 더위
- 강아지종류
- 샤로수길 데이트
- 홀리스틱 유기농
- 강아지 더위
Archives
- Today
- Total
심심한잉여의 잡동사니
JAVA - 프로그래머스 레벨2 - 전화번호 목록 본문
반응형
/*
*전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다.
*전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다.
*
*구조대 : 119
*박준영 : 97 674 223
*지영석 : 11 9552 4421
*전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때,
*어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 return 하도록 solution 함수를 작성해주세요.
*/
import java.util.Set;
import java.util.HashSet;
import java.util.Collections;
class Solution {
public boolean solution(String[] phone_book) {
boolean answer = true;
Set<String> list = new HashSet<String>(Arrays.asList(phone_book)); // phone_book 배열을 hashSet으로 변환
for (String s : list) { // set으로 변환한 값을 순회
for (int j = 0; j < s.length(); j++) { // 순회한 값의 길이만큼 반복 및 인덱스를 받음
if(list.contains(s.substring(0, j))) { //순회한 값의 length만큼 subString에 인덱스 대입 및 대입된 만큼의 subString으로 추출한 값이 전체 Set에 포함된게 있는지 확인
return false; 있다면 false로 반환
}
//순회 for문 continue;
}
}
return answer; //없다면 true로 반환
}
}
해당 문제를 풀면서 다 푼 후 왜 이렇게 돌아가는지 한번씩 정리를 해봤다.
이 문제를 풀며 처음엔 ArrayList로 작성해봤으나 시간이 더 오래걸려 HashSet으로 바꿔서 다시 풀어봤더니 효율성 검사에서 통과가 되었다.
아직 이정도 문제를 풀때 시간이 많이 걸리고 안찾아보고는 안풀리는게 아쉽다..
계속 연습하여 척하면 척이 되도록 노력해야겠다.
반응형
'코딩일기 > 코딩테스트 연습' 카테고리의 다른 글
[알고리즘]선택 정렬(Selection Sort) (0) | 2022.03.26 |
---|---|
JAVA - 프로그래머스 3레벨[해시] - 베스트앨범 (0) | 2022.01.28 |
JAVA - 프로그래머스 2레벨 - 튜플 (0) | 2021.10.20 |
JAVA - 프로그래머스 1레벨 - N번째 수 (0) | 2021.10.18 |
JAVA - 프로그래머스 1레벨 - 완주못한 선수 (0) | 2021.10.17 |