Python/Programmers 14

Lv.1-K번째 숫자 꺼내기

문제 배열 array의 i ~ j 까지 자르고 k번째 숫자를 꺼내야 한다. 예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면 array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다. 1에서 나온 배열을 정렬하면 [2, 3, 5, 6]입니다. 2에서 나온 배열의 3번째 숫자는 5입니다. 내 코드 def solution(array, commands): answer = [] for i in range(len(commands)): arr = array[commands[i][0]-1:commands[i][1]] arr.sort() answer.append(arr[commands[i][2]-1]) return answer 문제 풀이 배열을 먼저 ..

Python/Programmers 2021.07.07

Lv.1-신규 아이디 추천

문제 신규 가입자가 잘못된 아이디를 입력하면 아래 7가지 규칙에 따라 추천 아이디로 변환해줘야 한다. 1- new_id의 모든 대문자를 대응되는 소문자로 치환 2- new_id에서 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)를 제외한 모든 문자 제거 3- new_id에서 마침표(.)가 2번 이상 연속된 부분을 하나의 마침표(.)로 치환 4- new_id에서 마침표(.)가 처음이나 끝에 위치한다면 제거 5- new_id가 빈 문자열이라면, new_id에 "a"를 대입 6- new_id의 길이가 16자 이상이면, new_id의 첫 15개의 문자를 제외한 나머지 문자들 모두 제거 만약 제거 후 마침표(.) 가 new_id의 끝에 위치한다면 끝에 위치한 마침표(.) 문자를 제거 7- new_id..

Python/Programmers 2021.07.07

Lv.1-마라톤

문제 단 한명의 마라톤 참가자만 완주하지 못했다. Participant와 Completion의 배열이 주어질 때 완주하지 못한 사람을 찾아라. 내 코드 def solution(participant, completion): d = dict() answer = '' for i in range(len(participant)): if participant[i] not in d: d[participant[i]]=1 else: d[participant[i]]+=1 for i in range(len(completion)): if completion[i] in d: d[completion[i]]-=1 for k in d.keys(): if d[k] > 0: return k 문제 풀이 Python의 Dictionary를..

Python/Programmers 2021.07.07

Lv.1-폰켓몬

문제 총 N개의 폰켓몬 중 가져갈 수 있는 폰켓몬의 최대 개수는 N/2 최대한 다양한 수의 폰켓몬을 가져가야 한다. N마리 폰켓몬의 종류 번호가 담긴 배열 nums가 매개변수로 주어질 때, N/2마리의 폰켓몬을 선택하는 방법 중, 가장 많은 종류의 폰켓몬을 선택하는 방법을 찾아, 그때의 폰켓몬 종류 번호의 개수를 return 하도록 solution 함수를 완성해주세요. 내 코드 from itertools import combinations def solution(nums): maxSelect = len(nums)/2 data = set() for num in nums: if len(data) < maxSelect: data.add(num) return len(data) 문제 풀이 최대 가져갈 수 있는 폰..

Python/Programmers 2021.07.07