전체 글

해시(Hash)란?해시(Hash)란 특정 key를 인덱스로 삼아 value 값을 저장하는 자료구조이다.이 key 값은 해시함수를 통해 해시값으로 변환되어 value값의 인덱스가 된다.  리스트와 같은 자료구조에선 단순히 숫자가 value의 인덱스가 되겠지만 해시에는 숫자 뿐만 아니라 모든 객체를 인덱스처럼 사용할 수 있다. 이러한 자료구조는 실생활에서도 쉽게 볼 수 있는데 대표적인 예가 전화번호부이다.key가 이름이고 value가 전화번호이다.이름을 해시함수에 넣어서 이를 통해 해시 값을 반환해 전화번호에 매핑한다.해시를 통해 빠르게 특정 데이터를 빠르게 접근할 수 있다.key값만 있으면 value값을 바로 찾아낼 수 있으므로 시간 복잡도가 O(1)이 된다.  해시 값과 value를 매칭시켜놓은 공간을 ..
1. 문제2. 풀이 과정카드 뭉치는 무조건 순서대로 사용해야 하며 카드를 사용하지 않으면 다음 카드로 넘어갈 수 없다.무조건 제일 앞에 카드를 사용해야 다음 카드도 사용할 수 있다는 말이다.나는 이러한 특징을 보고 큐를 떠올렸다. 이 문제의 로직은 다음과 같다.cards1, cards2를 두 개의 큐에  순서대로 넣는다goal에서 문자열을 하나씩 꺼내서 cards1과 cards2 큐의 첫 번째 값과 비교한다.goal의 문자열과 같은 문자열이 있다면 해당 큐에서 그 문자열을 꺼내준다.만약 같은 문자열이 없다면 답은 No로 종결된다.반면 모든 goal의 문자열에 대해서 같은 문자열이 존재한다면 답은 Yes가 된다.3. 내 코드import java.util.*;class Solution { public ..
1. 문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr2. 풀이 과정진행상태와 진행속도를 알기 때문에 완료하는데 걸리는 시간을 알 수가 있다.위의 예시 중 progresses = [95, 90, 99, 99, 80, 99], speeds = [1, 1, 1, 1, 1, 1] 인 경우 각 기능이 완료하는데 걸리는 시간은 [5, 10, 1, 1, 20, 1]이다. 5일이 되는 순간 1번 기능은 바로 배포된다. --> 110일이 되는 순간 2번, 3번 4번 기능이 동시에 배포된다. 3번, 4번 기능의 경우 2번 기능 때문에 기다려야 한다.  --> 320일이 되..
1. 문제2. 풀이 과정처음엔 그냥 무작정 리스트에 1~N까지 넣어놓고 넣다 뺐다 했다.하지만 이렇게 하면 코드가 상당히 복잡해진다...  리스트로 구현 했을 때 가장 어려웠던 점은 기준이 되는 사람과 삭제될 사람의 위치 차이였다. 리스트는 선형으로 구성되어 있기 때문에 끝쪽 인덱스에 있는 사람이 기준이 되면 삭제할 사람을 찾을 때 다시 리스트 처음으로 돌아와 삭제할 사람을 찾아야 한다.말로만 들으면 그냥 나머지 연산으로 해결하면 될 것 같지만 막상 구현해보니 따져야할 케이스가 많았고 이로인해 코드가 상당히 복잡해졌다. 그래서 리스트를 재구성해 삭제될 사람이 항상 리스트의 맨 앞에 위치하게 끔 하는 건 어떨까 생각했다. 기준이 되는 사람을 리스트에 제일 앞에 오게 해서 이 사람부터 하나씩 삭제하고 다시 ..
jaehee1113
나의 개발 발자취