[문제 링크]
https://school.programmers.co.kr/learn/courses/30/lessons/42577
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
[풀이 과정]
Map에 모든 번호들을 넣고 하나씩 꺼내서 비교해야겠다는 생각을 했습니다.
자세한 설명은 주석에 하겠습니다.
[코드]
import java.util.*;
class Solution {
public boolean solution(String[] phone_book) {
Map<String, Integer> map = new HashMap<>();
int n = phone_book.length;
boolean answer = true;
// key에 모든 번호들을 저장
// value는 별다른 의미가 없다
for(int i = 0; i < n; i++) {
map.put(phone_book[i], i);
}
for(int i = 0; i < n; i++) {
String str = phone_book[i];
for(int j = 1; j < str.length(); j++) {
// 선택된 번호(ex) 119)를
// for문을 돌며 1, 11, 119 이런식으로 나눈다
String s = str.substring(0, j);
// 주어진 배열에 있는지 검증
if(map.containsKey(s)) {
answer = false;
break;
}
}
}
return answer;
}
}
[회고]
쉬웠습니다.
질문과 피드백은 언제나 환영입니다.
감사합니다.
'CodingTest > Programmers' 카테고리의 다른 글
[Programmers] 기능개발 (0) | 2025.04.03 |
---|---|
[Programmers] 베스트앨범 (0) | 2025.04.01 |
[Programmers] 의상 (1) | 2025.03.29 |
[Programmers] 포켓몬 (1) | 2025.03.27 |
[Programmers] 완주하지 못한 선수 (0) | 2025.03.27 |