728x90
코딩테스트 연습 - 전화번호 목록 | 프로그래머스 스쿨 (programmers.co.kr)
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
import java.util.*;
class Solution {
public boolean solution(String[] phone_book) {
boolean answer = true;
HashMap <String, Integer> map =new HashMap<>();
for(int i=0; i<phone_book.length; i++){
map.put(phone_book[i],i);
}//1. 값 넣기
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))){ //2. 번호가 접두사와 같은지 확인
answer=false;
return answer;
}
}
}
return answer;
}
}
예시)
더보기
phone_book = {"119", "97674223", "1195524421"}
1. map <String, integer>에 값 넣기
key | value |
119 | 0 |
97674223 | 1 |
1195524421 | 2 |
2. containsKey를 이용하여 번호가 접두사와 같은지 확인
if(map.containsKey(phone_book[i].substring(0,j)))
phone_book[i] | phone_book[i].substring(0,j) |
119 | 1 |
119 | 11 |
97674223 | 9 |
97674223 | 97 |
... | ... |
97674223 | 97674223 |
1195524421 | 1 |
1195524421 | 11 |
1195524421 | 119 |
=> '119'가 '1195524421'의 접두어에 해당하기 때문에 false 반환
HashMap
- Map 인터페이스에 속해있는 컬렉션
- 중복키 삽입 시 value 값 변경 -> 키는 고유한 속성 O, value는 고유한 속성 X
HashMap<Key, Value> map =new HashMap<>();
map.put(key,value); //값 추가
map.remove(key) //값 삭제
.containsKey(), .containsValue() : map에 키 or 값이 있는지 확인 있으면 true를 반환
728x90
'프로그래머스 & 백준' 카테고리의 다른 글
[프로그래머스/JAVA] - 기능개발 (0) | 2023.07.10 |
---|---|
[프로그래머스/JAVA] - 같은 숫자는 싫어 (0) | 2023.07.07 |
[프로그래머스/JAVA] - 폰켓몬 (0) | 2023.07.03 |
[프로그래머스/JAVA] - 완주하지 못한 선수 (해시) (0) | 2023.06.27 |
[프로그래머스/JAVA] - 주식가격 (0) | 2023.06.22 |