본문 바로가기

알고리즘 공부28

Hash Table key값은 불변! 이 글은 아래 유튜브 "코딩 국수" 님의 영상을 보고 생각한 점을 작성합니다. https://youtu.be/ET3iI5bNM80?si=B48M_fPSzaL3FKEI 언젠가 파이썬 딕셔너리를 활용하며 왜 안되지? 라는 생각을 한 적이 있다. 이러했던 경험을 논리적으로 풀어보려 한다. (자바에서는 HashMap과 동일하다) 딕셔너리는 아래와 같이, key와 해당 key에 해당하는 value값으로 구성되어 있다. dic = {"123": 12345} 이는 조금 더 풀어보면, "key의 해시값에 해당하는 위치에 value 값을 저장"하며 덕분에 key값을 알면, value값에 접근하는 시간을 O(1)의 시간으로 줄여준다. 이러한 구조를 해시 테이블(Hash Table)이라 칭한다. "key의 해시값" 이라는 .. 2024. 2. 22.
[프로그래머스] MySQL - 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기 문제 https://school.programmers.co.kr/learn/courses/30/lessons/157340 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결 방법 1. 서브 쿼리를 활용해 조건 내에 값이 존재할까? -> in 쿼리 이용 2. 날짜가 기간내에 포함되어 있나? -> Date between aDate and bDate 3. 여러 중복되는 car_id가 있을 때 단일 값처럼 다뤄주기 -> group by select car_id, (case when car_id in ( select car_id from car_rental_com.. 2024. 2. 22.
[프로그래머스] MySQL - 자동차 평균 대여 기간 구하기 문제 https://school.programmers.co.kr/learn/courses/30/lessons/157342 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 쉽지 않았습니다.. 이유로는 1. 조건에 맞는 row가 여러개 있었고, 겹치는 대상이 되었음 2. date의 차이를 계산하는 법 3. 평균값을 소수점 2번째에서 반올림 을 어떻게 구현해야 할 지 몰랐기 때문입니다,, 해결방법 1. group by 와 having 을 이용해 조건에 맞는 쿼리 생성! 2. datediff(끝나는 date, 시작한 date) 가 바로 date 차이를 구하는 함수.. 2024. 2. 20.
[프로그래머스] MySQL - 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 문제 https://school.programmers.co.kr/learn/courses/30/lessons/164671 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 단순한 join이 아닌 join을 한 값에서 특정 값만 추출해야 한다. 이 경우엔, 조회수가 가장 많은 녀석만 추출해야 한다. 처음에 where board.views = max(board.views) 를 해서 문법 오류가 났다. 다시 생각해보니 스칼라 값을 다룰 수 있도록 쿼리고 max 값을 뽑아줘야 했다. SELECT concat("/home/grep/src/", board.board_i.. 2024. 2. 20.