Algorithm/Problems (14) 썸네일형 리스트형 [Programmers] 영어 끝말잇기 Level 1 까지는 기세등등하게 풀었는데, Level 2로 들어가니 지금까지 풀었던 문제는 그저 '파이썬을 쓸 줄은 아니?' 정도였다는 걸 깨닫게 됩니다. 한 문제 한 문제가 다 너무 어렵네요... 문제 ...더보기 자연수 n과 끝말잇기 단어가 순서대로 담겨있는 배열이 주어진다. 1부터 n까지의 번호가 붙은 사람들이 끝말잇기를 하고있다.(1-n까지 순서대로 게임이 이루어진다.) 똑같은 단어가 다시 나오거나, 끝말이 맞지 않았을 때, 해당 사람은 탈락하게 된다. 탈락자가 발생했을 때, 해당 탈락자가 몇번째 사람인지, 또 몇번째 차례에서 틀린 것인지 반환하여라. 제한 사항 끝말잇기에 참여하는 사람의 수 n은 2 이상 10 이하의 자연수다. words는 끝말잇기에 사용한 단어들이 순서대로 들어있는 배열이며,.. [Programmers] Level 1(part. 2) 문제. ...더보기 문자열 내 마음대로 정렬하기. 문자형 자료가 담긴 리스트와 정수가 주어진다. 각 문자형 자료의 정수 번째 인덱스 글자를 기준으로 오름차순 정렬하여라. 인덱스 글자가 같은 경우, 사전순으로 앞선 문자열이 앞쪽에 위치하도록 하여라. 풀이. def solution(input_list, input_num): sort_index = [] for i in range(len(input_list)): sort_index.append((input_list[i][input_num], input_list[i])) sort_index.sort() _, result = zip(*sort_index) return list(result) *zip의 활용 index 문자로 정렬하였을 때, 해당 문자열을 알기 쉽도.. [Programmers] Level 1(part. 1) * Level 1에 있는 문제들 중 기초적인 문제들 중, 참고할만한 요소가 있었던 문제들을 추려서 정리하였습니다. 문제. ...더보기 예산. 각 부서에서 필요한 금액이 리스트로 주어지고, 총 예산이 정수 값으로 주어진다. 각 부서에게 지원금을 줄 경우 딱 맞아 떨어지는 금액을 줘야만 한다. 이 때, 지원금을 받는 부서수가 최대가 되도록 하여라. 풀이. def solution(input_list, input_num): input_list.sort() count = 0 for i in range(len(input_list)): if input_list[i] [Programmers] 체육복 문제. ...더보기 체육복을 도난 당한 사람에게 여벌의 체육복이 있는 사람들이 체육복을 빌려주어, 최대한 많은 사람이 체육복을 입을 수 있도록 하자. 다만, 체육복은 자기 바로 앞, 뒤 번호의 사람에게만 빌릴 수 있다. 제한조건. 1. 사람들은 번호로 주어진다. 2. 학생의 수는 2명 이상 30명 이하이다. 3. 중복되는 번호는 없으며, 도난당한 수 / 여벌을 가져온 수 모두 1명 이상 n명 이하이다. 4. 여벌을 가져온 학생이 도난을 당했을 수도 있다. 풀이. def solution(n, lost, reserve): lost_ = [] reserve_ = [] for i in lost: if not i in reserve: lost_.append(i) for i in reserve: if not i i.. [백준] 11047번 - 동전 0 문제. ...더보기 N 가지의 동전의 종류가 주어졌을 때, 그 가치의 합을 K로 만드는 최소의 동전 수를 구하여라. 풀이. def solution(input_list, input_num): result = 0 remained = input_num for i in range(len(input_list)): result += int(remained // input_list[-(i+1)]) remained = int(remained % input_list[-(i+1)]) if remained == 0: return result N, K = map(int, input().split()) coin_list = [] for i in range(N): coin_list.append(int(input())) print.. [백준] 11399번 - ATM 문제. ...더보기 사람들이 줄을 서는 순서에 따라, 모든 사람들의 돈 인출에 걸린 시간의 합은 달라지게 된다. 각 사람별로 인출에 걸리는 시간이 주어졌을 때, 총 인출에 걸린 시간의 합을 최소화하라. 풀이. def solution(input_list): result_list = sorted(input_list) result= 0 for i in range(len(input_list)): result += sum(result_list[:i+1]) return result N = int(input()) input_list = list(map(int, input().split())) print(solution(input_list)) 이전 1 2 다음