1. 폰켓몬
해설
n/2 마리와 중복 제거한 마리수를 비교해서
그 안에서 알맞은 값을 리턴하는 것이다.
2. 완주하지 못한 선수
해설
해쉬 테이블(hash)를 사용해서 풀어보기로 했다.
파이썬에서는 해쉬를 별도로 구현할 필요 없음 - 딕셔너리 타입을 사용하면 되기 때문이라고 한다.
리스트든 어딜 저장할 때 해당 데이터를 메모리로 저장하고 있는 테이블이 있다.
그걸 이용하는 것이다.
값이 같다면 해당 hash값도 같을 것이다. 이걸 이용한다.
participate와 completion의 해쉬값을 비교해서 같으면 지우고
없으면 그 hash값의 value를 리턴한다.(dictionary 구조에서 key, value를 사용하는 것과 같음)
3. 전화번호 목록
해설
위처럼 문제를 풀었다.
문자열 정렬해서 시간을 단축시키고
해쉬 테이블을 만들어서 리스트 내 요소를 비교한다.
해쉬의 장점은 중복값 판단이 좋다는 것.
이를 이용하면 된다.
4. 위장
해설
마지막에 다 안입는 경우를 빼주면 된다.
5. 베스트 앨범
해설
잘 이해가 안되서 다른사람 풀이를 보고 풀어봤다.
참고로 sorted를 쓰면 원래의 hash_map에 영향을 안줘서 사용했다.
sort를 썼으면 hash_map 이 바껴버려서 또 계산을 해줘야한다.
SQL 문제
1. 가격이 제일 비싼 식품의 정보 출력하기
서브 쿼리를 사용해서 그룹화를 한다음 해당 컬럼값을 비교하면 된다.
첫 번째 쿼리는 테이블 에 있는 모든 제품의 PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, price의 최대값을 검색합니다 . 결과는 테이블에서 찾은 가장 높은 가격을 포함하는 하나의 행만 표시합니다.
두 번째 쿼리는 테이블에서 가격이 가장 높은 제품의 PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY price 를 검색합니다 . 즉, 가장 높은 가격이 같은 제품이 여러 개 있는 경우 모두 결과에 표시됩니다.
따라서 주요 차이점은 첫 번째 쿼리는 하나의 행만 반환하는 반면 두 번째 쿼리는 동일한 최고 가격의 제품이 여러 개 있는 경우 여러 행을 반환할 수 있다는 것입니다.
위처럼 정렬한다음 내림차순의 첫번째 행만 리턴할 수도 있다.
'코테공부' 카테고리의 다른 글
프로그래머스 54일차 - 완전탐색 문제 모음(1) & IS NULL SQL 문제 모음 (0) | 2023.04.12 |
---|---|
프로그래머스 53일차 - 힙 문제 모음 & 상품 별 오프라인 매출 구하기 (0) | 2023.04.11 |
프로그래머스 52일차 - 루시와 엘라 찾기 & 진료과별 총 예약 횟수 출력하기 (0) | 2023.04.09 |
프로그래머스 51일차 - 정렬 문제 모음 & SQL 문제 최솟값 구하기 (0) | 2023.04.08 |
프로그래머스 50일차 - 중성화 여부 파악하기 (0) | 2023.04.07 |