본문 바로가기
카테고리 없음

[코테준비] #1. 해시

by 소소한해결사 2024. 7. 27.


오늘의 학습 키워드 

해시

 

 공부한 내용 

 

📌 코딩 테스트 문제 ? 

코딩테스트 연습 - 전화번호 목록

 

 

📌 문제 풀이 프로세스 

 

[1] 문제 이해

 

이 문제는 처음에 문제 이해에 실패했다.. .ㅜㅜ 

정말 다르게 이해해놓고서는 코딩을 하는 바람에 

시간이 생각보다 오래 걸렸다... 

 

제대로 알고 접근해야 

시간 낭비를 줄일 수 있는데.. 

이번 문제는 문제 이해 부분이 아쉬웠다... 

 

그래도 테스트 케이스들을 생각하고 

'왜 안되지?'를 반복하다가 

결국은 다시 '문제 이해'로 돌아가서 

차근 차근 읽고 

내 코드의 문제를 고칠 수 있었따. 

 

 

[2] 직관적 문제 접근 

 

해시로 풀려니깐.. 생각보다 절차가 많은 것 같아서.. 

우선 스킵 했다.. 

 

충분히 그리디 정렬 만으로도 접근 할 수 있지 않을까?

싶었다... 

 

물론.. 나중에 해시맵으로 풀어봐야겠다.. ! 

 

 

(1) 정렬해주기~

 

(2) 특정 숫자가 접두사로 사용된 부분을 걸러주기 

 

def solution(phone_book):
	# 정렬해주기~
    answer = True
    phone_book.sort()
    
    #접두사로 사용된 부분 발견하면 False 리턴
    for i in range(len(phone_book) - 1):
        if phone_book[i] == phone_book[i + 1][:len(phone_book[i])]:
            return False
    return True

 

생각보다 간단한 프로세스로 접근했다. 

 

결과는 

 

통과다 ..! 

 

 

[3] 회고 

 

오늘 문제는 해시로 접근해야하는데 .. 

약간의 귀차니즘 ? 때문에 

해시가 아닌 그리디로 접근했다. 

 

오늘 오후에 한 번 해시로 작성해봐야겠다.. 

 

그리고 '문제 이해'를 잘 해야지.. 

다른 테스트 케이스를 잘 작성할 수 있을듯.. ㅜㅜ 

바보같은 테스트 케이스 작성으로 시간만 낭비 ..

 

정말 바보같은 실수를 해버려서

제한 시간을 초과했지만!

 

다음 부터는 그런 일 없도록 주의~!


풀이 시간 : 00:35:52