Algorithm/Prob
Java) 프로그래머스 42577 전화번호 목록
헬린인형
2022. 3. 29. 02:22
https://programmers.co.kr/learn/courses/30/lessons/42577?language=java
코딩테스트 연습 - 전화번호 목록
전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조
programmers.co.kr
package Programmers;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
public class j42577 {
public static void main(String[] args){
String[] phone_book = {"119", "97674223", "1195524421"};
System.out.println(solution(phone_book));
}
public static boolean solution(String[] phone_book) {
boolean answer = true;
Map<String, Integer> phone_book_map = new HashMap<String, Integer>();
for(int a=0; a<phone_book.length; a++) {
for(int b=1; b<phone_book[a].length(); b++) {
phone_book_map.put(phone_book[a].substring(0,b),1);
}
}
for(int a=0;a<phone_book.length;a++) {
if(phone_book_map.containsKey(phone_book[a])){
answer = false;
break;
}
}
return answer;
}
}
* 새롭게 알게 된 것들
1) 정렬
import java.util.Arrays;
Arrays.sort(arr); //오름차순
Arrays.sort(arr, Collections.reverseOrder()); //내림차순
2) 향상된 for문
for(int a=0; a<phone_book.length; a++) {
for(int b=1; b<phone_book[a].length(); b++) {
phone_book_map.put(phone_book[a].substring(0,b),1);
}
}
↓
for (String s : phone_book) {
for (int b = 1; b < s.length(); b++) {
phone_book_map.put(s.substring(0, b), 1);
}
}
약간 파이썬 느낌인가
3) length -> 배열의 길이
length() -> 문자열의 길이
해시 - https://www.youtube.com/watch?v=Vi0hauJemxA
반응형