본문 바로가기

Algorithm/해시5

[프로그래머스 lv 3] 베스트앨범 사용 언어 - Python3 문제 - 베스트앨범 https://school.programmers.co.kr/learn/courses/30/lessons/42579 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 hash 사용하기 1. 딕셔너리 생성 dic1 각 장르별 인덱스와 재생수 dic1[g] = [(i,p)] dic2 각 장르별 재생횟수 총합 dic2[g] += p 2. 정렬 dic2의 장르별 총 재생 횟수가 많은 순서대로 내림차순 정렬 > dic1[k] 해당 장르에서 가장 많이 재생된 순서대로 내림차순 정렬 -> [:2] 두곡만 index를 a.. 2023. 12. 4.
[프로그래머스 lv 2] 의상 사용 언어 - Python3 문제 - 의상 https://school.programmers.co.kr/learn/courses/30/lessons/42578 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 hash 사용하기 1. 옷을 종류별로 구분하기 hasp_map[얼굴] = 얼굴에 쓰는 옷 종류 개수 type에 해당하는 옷이 없다면 +1 / 있다면 지금까지의 count + 1 hash_map.get(type,0) + 1 2. 모든 조합 계산하기 상의 2개에 하의 1개이면, 상의만 입거나 하의만 입을 수도 있으므로 가능한 경우 수 = 상의 3개*하의.. 2023. 12. 4.
[프로그래머스 lv 2] 전화번호 목록 사용 언어 - Python3 문제 - 전화번호 목록 https://school.programmers.co.kr/learn/courses/30/lessons/42577 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 zip, startswith 사용하기 (정답 맞춘 여부 X) 1. phone_book을 짧은 숫자부터 정렬한후, 비교해준다. 2. 더 긴 숫자가 짧은 숫자로 시작한다면 return False , 아니라면 return True def solution(phone_book): phone_book = sorted(phone_book) # 짧은 숫자.. 2023. 12. 4.
[프로그래머스 lv 1] 폰켓몬 사용 언어 - Python3 문제 - 폰켓몬 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 해시 (정답 맞춘 여부 X) nums/2 포켓몬 뽑을 때 중복을 제거한 포켓몬 사이에서 뽑아주면, answer = nums/2 3개를 뽑아야하는데, 중복을 제거하니 2종류(len(nums)) 밖에 없다면 len(nums)을 출력한다. min(len(nums), choose) def solution(nums): answer = 0 choose = int(len(nums)/2) nums = set(nums) answer = min(len(nums),choose) .. 2023. 5. 29.
[프로그래머스 lv1] 완주하지 못한 선수 사용 언어 - Python3 문제 - 완주하지 못한 선수 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 시간초과 => 해시 사용하기 (정답 맞춘 여부 X) # 방법1 시간초과 def solution(participant, completion): answer = '' for p in participant: if p in completion: completion.remove(p) else: answer += p return answer # 방법2 시간초과 def solution(participant, completion): answer = '' key .. 2023. 5. 29.