본문 바로가기
CodingTest/Programmers

[Programmers] 전화번호 목록

by 창브로 2025. 3. 28.

[문제 링크]

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