Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 퇴사
- React Native
- 5430 java
- 알고리즘
- ubuntu
- 1012 자바
- 백준 유기농 배추
- 백준 1012 자바
- 백준
- 1697 자바
- Expo
- 1389 JAVA
- 백준 1697 자바
- 5430자바
- 백준 5430자바
- 백준 2615
- 노트북 서버
- 자바
- mobaXTerm
- 1389자바
- Ubuntu USB부팅
- 백준 1012 java
- BFS
- 1012 java
- 백준 1389 자바
Archives
- Today
- Total
삽질메모장
programmers : hash 2 (전화번호 목록)[java] 본문
119, 11923 이라는 두개의 정수를 포함하는 phone_book[]이 있다면
첫번째 반복(i=0) 에서 containskey( substring[0,3])이라면 "119"이기때문에 모든 경우가 containskey되는것이라 생각되어서 j-1 아닌가? 했었다.
실제로는 substring(begin index, end index)에서 end index 는 해당 index의 바로 앞까지만 자른다
즉 phone_book[0] = 119이라면 phone_book[0].substring(0,3) == 11 인것이다.
이런 헷갈리는 부분만 없으면 금방풀수있는 쉬운 문제이다.
import java.util.HashMap;
import java.util.Map;
class Solution {
public boolean solution(String[] phone_book) {
Map<String, Integer> map = new HashMap<>();
for(int i= 0; i<phone_book.length; i++)
map.put(phone_book[i], i);
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;
}
}
'Knowledge > 알고리즘' 카테고리의 다른 글
programmers : stack queue 2 (프린터)[java] (0) | 2022.01.11 |
---|---|
programmers : stack queue 1 (기능개발)[java] (0) | 2022.01.11 |
programmers : hash 4 (베스트앨범)[java] (0) | 2022.01.11 |
programmers : hash 1 (완주하지 못한 선수)[java] (0) | 2022.01.11 |
programmers : stack queue 3 (다리를 지나는 트럭)[java] (0) | 2022.01.06 |