목록딕셔너리 (7)
나의 개발일지

문제 : https://school.programmers.co.kr/learn/courses/30/lessons/42579 🔑 딕셔너리, 힙 music 딕셔너리 "장르" : [(-재생 횟수, 고유 번호), (-재생 횟수, 고유 번호)] value의 리스트는 힙이고 재생 횟수를 음수값으로 넣어 최대 힙 구현 play 딕셔너리 "장르" : 총 재생 횟수 앨범에 먼저 수록할 장르를 구하기 위한 딕셔너리 play 딕셔너리를 총 재생 횟수 기준으로 정렬 1번 조건 : 노래가 많이 재생된 장르를 먼저 수록합니다. 정렬한 play 리스트에서 pop() 2번 조건 : 장르 내에서 많이 재생된 노래를 먼저 수록합니다. music["장르"]에서 heappop() 장르 내에 속한 곡이 1개 일 때 처리를 try-except..

문제 : https://www.acmicpc.net/problem/20440 🔑 딕셔너리 key에 시간, value에 모기 마리 수 저장 딕셔너리 생성 들어온 시간 value값에는 모기 마리 수를 더한다. 나간 시간 value값에는 모기 마리 수를 뺀다. 정렬 딕셔너리 key, value 값으로 오름차순 정렬한다. 정렬된 리스트에서 최댓값 찾기 모기 마릿수를 순서대로 더해가면서 최댓값을 계속 업데이트한다. 마지막으로 업데이트된 인덱스와 시간을 저장 최댓값 인덱스 부터 모기가 모두 나간 시점 찾기 value가 0 미만인 값을 찾으면 해당하는 시간 저장하고 브레이크 최댓값, 가장 많은 모기가 있는 시작 시간, 끝시간을 출력하면 끝 ✨ from collections import defaultdict impor..

문제 : https://school.programmers.co.kr/learn/courses/30/lessons/42888 {유저 아이디 : 닉네임} 의 쌍을 가지는 딕셔너리를 만들어 닉네임만 업데이트 시켜준다. def solution(record): answer = [] d = dict() # 아이디 : 이름을 저장하는 딕셔너리 for s in record: x = s.split() if x[0] != "Leave": # 들어오거나, 이름 변경할 때만 d[x[1]] = x[2] # 아이디 : 이름 저장 for s in record: # 아이디에 맞는 이름 찾아서 출력 x = s.split() if x[0] == "Enter": answer.append(d[x[1]] + "님이 들어왔습니다.") elif..

문제 : https://school.programmers.co.kr/learn/courses/30/lessons/81301 dictionary, replace 활용 def solution(s): d = {"zero" : "0", "one" : "1", "two" : "2", "three" : "3", "four" : "4", "five" : "5", "six" : "6", "seven" : "7", "eight" : "8", "nine" : "9", } for i in d: if i in s: s = s.replace(i, d[i]) return int(s) print(solution("one4seveneight"))

문제 : https://school.programmers.co.kr/learn/courses/30/lessons/42578 딕셔너리, 해시 맵 파이썬 def solution(clothes): answer = 1 dic = {} for li in clothes: dic[li[1]] = dic.get(li[1], 1) + 1 for key in dic: answer *= dic[key] return answer - 1 자바 import java.util.*; class Solution { public int solution(String[][] clothes) { int answer = 1; Map map = new HashMap(); for (String[] arr : clothes) { map.put(ar..

문제 : https://school.programmers.co.kr/learn/courses/30/lessons/42576 해시 함수, 딕셔너리, 해시 맵 파이썬 def solution(participant, completion): hashDict={} sumHash=0 for name in participant: hashDict[hash(name)]=name sumHash+=hash(name) for name in completion: sumHash-=hash(name) return hashDict[sumHash] 자바 import java.util.*; class Solution { public String solution(String[] participant, String[] completion) ..

문제 : https://school.programmers.co.kr/learn/courses/30/lessons/67258 2020 카카오 인턴십 Lv.3 문제 🔑 : 딕셔너리, 투포인터 def solution(gems): gems_len = len(set(gems)) # 보석 종류 수 answer = [1, len(gems)] gems_dict = {gems[0] : 1} # 첫 번째 보석 미리 저장 l = 0 r = 0 while l < len(gems): if len(gems_dict) != gems_len: # 모든 보석이 안 들어있으면 r += 1 # 오른쪽으로 이동 if r == len(gems): # 범위 벗어나면 브레이크 break if gems[r] not in gems_dict: # 딕..