본문 바로가기

Coding Test28

[Hash] 전화번호 목록 문제: https://school.programmers.co.kr/learn/courses/30/lessons/42577 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.krHash를 사용한 코드 1 (실패)def solution(phone_book): dic = {} for p in phone_book: dic[p] = p s = '' for i in p: s += i if s in dic and s != p: return False return.. 2024. 6. 12.
[Hash] 폰켓몬 문제: https://school.programmers.co.kr/learn/courses/30/lessons/1845 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr입출력 예numsresult[3,1,2,3]2[3,3,3,2,2,4]3[3,3,3,2,2,2]2 풀이set()을 통해 중복 값을 제거한다.예제 1)nums는 {1,2,3}이 된다.중복값을 제거한 nums의 길이는 3이다.nums/2 만큼 뽑는다. (= 2마리 뽑는다.)2마리를 뽑아야 하는데 중복값을 제거한 길이, 즉 3마리가 존재하므로 가장 많은 종류의 폰켓몬을 뽑을 수 있는 경우의 수는 2이다... 2024. 6. 12.
[Hash] 완주하지 못한 선수 문제: https://school.programmers.co.kr/learn/courses/30/lessons/42576 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr코드 1participant=['leo','kiki','eden']completion=['eden','kiki']ps = 0cs = 0dic = {}for p in participant: dic[hash(p)] = p # ['leo','kiki','eden']의 hash값을 key로 가짐 print(p) ps += hash(p) # participant의 hash값 다 .. 2024. 6. 12.
Hash 개념 해시는 데이터를 다루는 기법 중의 하나로, 검색과 저장을 아주 빠르게하는 자료구조이다.데이터를 저장할 때 Key-Value 형태로 데이터가 존재하고, Key값이 배열의 인덱스로 저장되기 때문에 검색과 저장이 빠르게 일어나게 된다.해시 함수는 key값을 고정된 길이의 hash로 변환하는 역할을 한다.해시 함수에서 hashing을 통해 해시값으로 변경하며, 이 해시값이 저장 위치가 된다고 생각하면 된다.서로 다른 key가 같은 해시가 되는 경우를 해시 충돌이라고 하며, 이 충돌의 확률을 최대한 줄이는 함수를 만드는 것이 중요하다.장점단점중복을 제거할 수 있다.데이터 캐싱, 보안에 주로 사용된다.배열의 인덱스로 접근하기 때문에 삽입, 삭제 등의 연산이 빠르다.공간 복잡도가 커진다.충돌이 발생할 수 있다.충돌이.. 2024. 6. 12.