티스토리 뷰

문제 설명 

전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다.

 

문제풀이

처음에 이것을 풀려면 접두어를 포함 어떻게 시킬까라는 생각을 했다

SQL문도 like문이 있어 java도 뭔가 비슷한게 있지 않을까 해서 검색 했다. 

startsWith라는 메소드가 접두어를 포함 시켰을 때 true값을 받아오는 메서드이다.

이것을 사용한다면 풀 수 있지 않을까 생각이 든다. 

1) 정렬하여 풀기

정렬하면 근처에 있는 값들은 서로 비슷해서 접두어를 포함 가능성이 높다

그래서 정렬로 풀었지만 문제가 있다. 테스트 3경우에서 712 같은 숫자를 넣었을 때 주변 유사값만 비교하면 틀릴 가능성이 높다.

정렬을 사용했기 때문에 메모리 소모가 있어 효율성에서는 떨어지지 않을까 생각이든다.

 

2) HashSet을 이용

 

HashSet을 사용했을 때 자기자신은 포함하면 안되니 검사한 값들만 set에 저장하여 자기 자신과는 비교하지 않는다.

아무래도 Hash 문제니깐 hash로 풀어야 된다 생각한다.