본문 바로가기

Python37

[Python] itertools cycle() itertools의 cycle()을 사용하여 원하는 수 만큼 리스트를 반복할 수 있습니다. from itertools import cycle test = [ cycle([1, 2, 3, 4, 5]), cycle([1, 2, 3]), cycle([1, 2]), ] for _ in range(10): print(str(next(test[0])) + ' ', end='') print() for _ in range(10): print(str(next(test[1])) + ' ', end='') print() for _ in range(10): print(str(next(test[2])) + ' ', end='') # 출력결과 # 1 2 3 4 5 1 2 3 4 5 # 1 2 3 1 2 3 1 2 3 1 # 1 .. 2021. 2. 12.
[Python] 모의고사 코딩테스트 연습 - 모의고사 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 programmers.co.kr 풀이 각각의 학생들의 정답 순서를 입력받은 답안과 비교하여 맞은 개수를 리스트에 저장하고 enumerate를 사용해서 리스트 중 최고점수와 같은 점수를 갖고있는 인덱스를 정답 리스트에 저장하여 해결하였습니다. 코드 def solution(answers): p = [] p.append([1, 2, 3, 4, 5]) p.append([2, 1, 2, 3, 2, 4, 2, 5]) p.append([3, 3, 1, 1, 2, 2, 4, 4, 5, 5]) cnt = [0.. 2021. 2. 12.
[Python] collections.Counter collections에 내장된 함수인 Counter()는 dictionary와 같이 hash 자료들의 개수를 셀 때 사용되고 dictionary처럼 {key : value} 형식으로 만들어진다. Counter()로 처리된 값 끼리 빼는 것도 가능하고 그 결과로 0 이나 음수의 값들도 가능하다.(subtract() 사용) 해당하는 값이 없더라도 error가 아닌 0을 반환한다. import collections a = ['aa', 'cc', 'dd'] result = collections.Counter(a) print(result['ee']) # 실행결과 # 0 count된 수를 기준으로 오름차순으로 정렬된다. import collections a = ['a', 'b', 'c', 'd', 'a', 'b',.. 2021. 2. 7.
[Python] 완주하지 못한 선수 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수 programmers.co.kr 풀이 참가자와 완주자들의 배열을 정렬하면 문자들의 순서가 동일하게 정렬되기 때문에 같은 인덱스에서 다른 문자가 나올 경우 완주하지 못한 선수로 하였고 반복문을 다 돌때까지 찾지못했다면 완주한 선수의 배열의 길이는 참가자의 배열의 길이 -1 이므로 결국 참가자의 맨 마지막 사람이 완주하지 못했다는 의미가 되어 완주하지 못한 선수를 구해 해결할 수 있었습니다. 파이썬을 배우면서 풀고있는 알고리즘문제이기 때문에 다른 사람들의 풀이를 보면서 coll.. 2021. 2. 7.
[Python] 신규 아이디 추천 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 카카오계정개발팀에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. 네오에게 주어진 첫 업무는 새로 가 programmers.co.kr 풀이 파이썬의 정규표현식을 이용해서 문제에서의 2단계와 3단계를 쉽게 해결하여 풀 수 있었습니다. 파이썬은 공부하면 공부할수록 문제를 더 쉽게(?)풀 수 있는 매력적인 언어같습니다 코드 import re def solution(new_id): answer = '' # 알아서 알파벳만 소문자로 바꾸어 준다. # 1단계 new_id = new_id.lower() # 2단계 new_id = re.sub('[^a-z0-9-_.]', '', new_id) # 3단계 .. 2021. 2. 4.
[Python] 두 개 뽑아서 더하기 코딩테스트 연습 - 두 개 뽑아서 더하기 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한 programmers.co.kr 풀이 파이썬의 permutation을 이용해서 모든 경우의 수를 구한 후 중복을 처리하기위해 set을 사용하여 해결했습니다. 이때, 파이썬의 set은 자동으로 정렬되지 않는 것을 주의해야 합니다. 코드 def solution(numbers): answer = set() select_num_list = list(permutations(list(numbers), 2)) for select_nums in select_n.. 2021. 1. 30.