알고리즘/프로그래머스
-
[위클리 챌린지] 5주차알고리즘/프로그래머스 2021. 9. 11. 19:25
https://programmers.co.kr/learn/courses/30/lessons/84512 코딩테스트 연습 - 5주차_모음사전 사전에 알파벳 모음 'A', 'E', 'I', 'O', 'U'만을 사용하여 만들 수 있는, 길이 5 이하의 모든 단어가 수록되어 있습니다. 사전에서 첫 번째 단어는 "A"이고, 그다음은 "AA"이며, 마지막 단어는 "UUUUU"입니 programmers.co.kr - 풀이 from itertools import product def solution(word): return sorted(sum([[''.join(j) for j in product(['A','E','I','O','U'], repeat=i+1)] for i in range(5)], [])).index(wor..
-
[정렬] K번째수 / 가장 큰 수 / H-Index알고리즘/프로그래머스 2021. 9. 5. 14:44
https://programmers.co.kr/learn/courses/30/lessons/42748 코딩테스트 연습 - K번째수 [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] programmers.co.kr 파이썬으로 매우 쉽게 풀 수 있다. def solution(array, commands): answer = [sorted(array[i[0]-1:i[1]])[i[2]-1] for i in commands] return answer https://programmers.co.kr/learn/courses/30/lessons/42746 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는..
-
[해시] 완주하지 못한 선수 / 전화번호 목록 / 위장알고리즘/프로그래머스 2021. 9. 4. 15:56
https://programmers.co.kr/learn/courses/30/lessons/42576 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수 programmers.co.kr def solution(participant, completion): dic = {} for i in participant: dic.setdefault(i, 0) dic[i] += 1 for i in completion: dic[i] -= 1 for i in dic: if dic[i]==1: return i https://programmers..
-
[해시] 베스트앨범알고리즘/프로그래머스 2021. 9. 4. 15:52
https://programmers.co.kr/learn/courses/30/lessons/42579# 코딩테스트 연습 - 베스트앨범 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 programmers.co.kr 1. 인덱스가 key이고, 재생횟수가 value인 딕셔너리dic을 만든다. #{'0' : 500} - {0: 500, 1: 600, 2: 150, 3: 800, 4: 2500} 2. 장르가 key이고, 재생횟수 리스트가 value인 딕셔너리 music_dic을 만든다. - {'classic': [500, 150, 800], 'pop': [600, 2500]}..
-
[위클리 챌린지] 3주차알고리즘/프로그래머스 2021. 8. 29. 19:09
https://programmers.co.kr/learn/courses/30/lessons/84021# 코딩테스트 연습 - 3주차 [[1,1,0,0,1,0],[0,0,1,0,1,0],[0,1,1,0,0,1],[1,1,0,1,1,1],[1,0,0,0,1,0],[0,1,1,1,0,0]] [[1,0,0,1,1,0],[1,0,1,0,1,0],[0,1,1,0,1,1],[0,0,1,0,0,0],[1,1,0,1,1,0],[0,1,0,0,0,0]] 14 [[0,0,0],[1,1,0],[1,1,1]] [[1,1,1],[1,0,0],[0,0,0]] 0 programmers.co.kr 간소화랑 효율성 고려안하고 짜서 그런지 코드가 좀 난잡하다. - 풀이 1. table에 대해 각각의 블럭에 대해 아래와 같은 배열을 만든다...
-
[위클리 챌린지] 2주차알고리즘/프로그래머스 2021. 8. 25. 19:56
https://programmers.co.kr/learn/courses/30/lessons/83201?language=python3 코딩테스트 연습 - 2주차 [[100,90,98,88,65],[50,45,99,85,77],[47,88,95,80,67],[61,57,100,80,65],[24,90,94,75,65]] "FBABD" [[70,49,90],[68,50,38],[73,31,100]] "CFD" programmers.co.kr - Python 풀이 # 2차원 리스트 슬라이싱을 쓰려고, numpy사용 import numpy as np def solution(scores): scores = np.array(scores) answer = '' dic = {} for i in range(len(scor..
-
[위클리 챌린지] 4주차알고리즘/프로그래머스 2021. 8. 24. 20:01
https://programmers.co.kr/learn/courses/30/lessons/84325 코딩테스트 연습 - 4주차 개발자가 사용하는 언어와 언어 선호도를 입력하면 그에 맞는 직업군을 추천해주는 알고리즘을 개발하려고 합니다. 아래 표는 5개 직업군 별로 많이 사용하는 5개 언어에 직업군 언어 점수를 부 programmers.co.kr - Python 풀이 def solution(table, languages, preference): answer = '' dic = {} #직업군 언어 점수 for i in table: t = i.split(' ') dic[t[0]] = t[1:] dic2 = {} #개발자 언어 선호도 for i in range(len(languages)): dic2[langu..
-
[위클리 챌린지] 1주차알고리즘/프로그래머스 2021. 8. 24. 19:59
https://programmers.co.kr/learn/courses/30/lessons/82612 코딩테스트 연습 - 1주차 새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 price원 인데, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. 즉, 처음 이 programmers.co.kr - Python 풀이 def solution(price, money, count): return 0 if sum([price * i for i in range(1, count+1)]) < money else sum([price * i for i in range(1, count+1)]) - money