알고리즘
-
[위클리 챌린지] 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
-
[2018 KAKAO BLIND RECRUITMENT] [3차] 압축알고리즘/프로그래머스 2021. 8. 22. 09:32
https://programmers.co.kr/learn/courses/30/lessons/17684 코딩테스트 연습 - [3차] 압축 TOBEORNOTTOBEORTOBEORNOT [20, 15, 2, 5, 15, 18, 14, 15, 20, 27, 29, 31, 36, 30, 32, 34] programmers.co.kr - 풀이 1. 길이가 1인 모든 단어를 포함하도록 사전을 초기화한다. - 리스트 d에 초기화사전에서 현재 입력과 일치하는 가장 긴 문자열 w를 찾는다. - 사전의 뒤에서 부터 검색하며, re.match로 w를 찾는다. (뒤에서부터 검색해야 가장 길게 일치하는 것이 찾아진다.) 2. w에 해당하는 사전의 색인 번호를 출력하고, 입력에서 w를 제거한다. - 사전의 색인번호를 answer에..
-
[2021 카카오 채용연계형 인턴십] 숫자 문자열과 영단어알고리즘/프로그래머스 2021. 8. 20. 19:59
https://programmers.co.kr/learn/courses/30/lessons/81301?language=python3 코딩테스트 연습 - 숫자 문자열과 영단어 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자 programmers.co.kr - 풀이 매우매우 쉽다. def solution(s): dic = {0:'zero', 1:'one', 2:'two', 3:'three', 4:'four', 5:'five', 6:'six', 7:'seven', 8:'eight', 9:'nine'} for i in dic: s = s.replace(dic[i], str(i)..
-
[2020 카카오 인턴십] 보석 쇼핑알고리즘/프로그래머스 2021. 8. 17. 20:58
https://programmers.co.kr/learn/courses/30/lessons/67258 코딩테스트 연습 - 보석 쇼핑 ["DIA", "RUBY", "RUBY", "DIA", "DIA", "EMERALD", "SAPPHIRE", "DIA"] [3, 7] programmers.co.kr 효율성 테스트를 통과 못해서 애먹었다. 1. 처음에 짰던 코드, 당연히 효율성에서 다 틀렸다. def solution(gems): answer = [0, 100000] glist = [] for i in gems: if i not in glist: glist.append(i) case = [] for i in range(len(gems)): glist2 = [] for j in range(i, len(gems)..