-
HashMap(프로그래머스 전화번호 목록)자료구조 2021. 12. 10. 20:14
프로그래머스 전화번호 목록
length, length(), size()
- length = 배열의 길이
- length() = 문자열의 길이
- size() = 컬렉션프레임워크의 길이
- 리스트 또는 Array 등 컬렉션 안에 들어있는 원소의 갯수(?)
import java.util.HashMap; class Solution { public boolean solution(String[] phone_book) { //hashMap 생성 HashMap<String, Integer> map = new HashMap<>(); for(int i = 0; i<phone_book.length; i++) map.put(phone_book[i],1); //map 안에 접두어가 있는지 확인 for(int i=0; i<phone_book.length; i++) for(int j=0; j<phone_book[i].length(); j++) if(map.containsKey(phone_book[i].substring(0,j))) return false; // 여기까지 왔다면 접두어가 없다는 의미 return true; } public static void main(String[] args){ String[] phone_book = {"119", "97684223", "1195524421"}; Solution sol = new Solution(); System.out.println(sol.solution(phone_book)); } }
- phone_book의 배열의 길이만큼 돌면서 인덱스 마다 1추가
- 다시 phone_book 길이 만큼 돌면서 각각의 인덱스의 문자열만큼 j를 통해 다시돈다.
- 위에서 각각의 인덱스에 해당하는 문자열을 0~j만큼 돌은 값을 containsKey에 담고 map에 있는지 확인
- 접두어가 있으면 false를 반환하도록 설정(if문으로)
- 만약 위 과정까지 밞았는데 false가 반환되지 않는다면 true 반환
containsKey()
- map에서 인자로 보낸 key가 있다면 true 없다면 false
- 여기서는 접두어가 있다는 의미이므로 false 반환
substring(i,j)
- 문자열의 시작(i) 인덱스부터 종료(j)인덱스 까지에 해당하는 값을 반환
Feat. 유튜버 "개발자로 취직하기"
'자료구조' 카테고리의 다른 글
문자열 공백 url 인코딩하기 (0) 2021.11.28 TIL 38th day (0) 2021.11.28 문자열 치환 (0) 2021.11.27 Array 중복 확인 (0) 2021.11.27 StringBuilder (0) 2021.11.26