[TIL] 99클럽 코테 스터디 1일차 TIL + 오늘의 학습 키워드

2024. 5. 21. 01:33·TIL

* 오늘의 학습 키워드 : 해쉬맵

 - 'HashMap'은 키(Key)와 값(value)쌍을 저장하는 자료 구조이다. 각 키는 고유하며, 키를 사용하여 해당하는 값을 빠르게 검색할 수 있다.


* 프로그래머스 전화번호 목록 : https://school.programmers.co.kr/learn/courses/30/lessons/42577

 - 처음에는 Loop로 문제를 풀었지만, 효율성이 안 좋다는 결과가 나와서 해쉬맵을 사용해 문제를 풀었다.

class Solution {
    public boolean solution(String[] phone_book) {
    
        Map<String, Integer> map = new HashMap<>();
        
        //phone_book의 정보를 map에 담아준다.
        for(int i = 0; i < phone_book.length; i++){
        	map.put(phone_book[i], i);
        }
        
        //map의 key 값에 phone_book[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;
    }
}

* 알게된 것

 1) substring으로 접두어 부분만 비교해주기

     - substring을 통해 문자열을 잘라 비교하고 싶은 부분만 비교한다.

 2) containsKey를 이용해 key값에 접두어가 포함되어 있는지를 확인


* 다른 풀이 ( Loop 사용 )

import java.util.*;

class Solution {
    public boolean solution(String[] phone_book) {
   		
        //phone_book의 숫자를 정렬해준다.
        Arrays.sort(phone_book);
        
        //phone_book의 접두어를 startsWith를 사용해 비교한다.
        for(int i = 0; i < phone_book.length -1; i++){
        	if(phone_book[i+1].startsWith(phone_book[i])){
            	return false;
            }
        }
        return true;
    }
}

* 알게된 것

 1) startsWith(), endWith() 로 문자열 비교하기

     - startsWith()는 해당 문자열로 시작되는지, endsWith()는 해당 문자열로 끝나는지를 true/false로 반환해준다.

       단, 공백도 포함하기 때문에 확인하고 사용해야 한다.


 

 

References

  • https://coding-grandpa.tistory.com/77
  • https://velog.io/@cchoijjinyoung/자료구조-5-HashMap해시맵을-알아보자
  • https://mine-it-record.tistory.com/128https://mine-it-record.tistory.com/128

 

'TIL' 카테고리의 다른 글

[TIL] 백준 1326 - 폴짝폴짝 ( python )  (0) 2025.03.03
[TIL] 백준 4779 칸토어 집합  (1) 2024.09.08
[TIL] 99클럽 코테 스터디 23일차 TIL + 오늘의 학습 키워드  (0) 2024.06.12
[TIL] 99클럽 코테 스터디 21일차 TIL + 오늘의 학습 키워드  (1) 2024.06.10
[TIL] 99클럽 코테 스터디 2일차 TIL + 오늘의 학습 키워드  (0) 2024.05.22
'TIL' 카테고리의 다른 글
  • [TIL] 백준 4779 칸토어 집합
  • [TIL] 99클럽 코테 스터디 23일차 TIL + 오늘의 학습 키워드
  • [TIL] 99클럽 코테 스터디 21일차 TIL + 오늘의 학습 키워드
  • [TIL] 99클럽 코테 스터디 2일차 TIL + 오늘의 학습 키워드
밀27
밀27
  • 밀27
    밀2
    밀27
    • 분류 전체보기 (33)
      • Git (1)
      • AWS (1)
      • Flutter (3)
      • Spring (3)
      • MariaDB (2)
      • TIL (23)
  • 블로그 메뉴

    • 홈
    • 태그
  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
밀27
[TIL] 99클럽 코테 스터디 1일차 TIL + 오늘의 학습 키워드
상단으로

티스토리툴바