Python 202

[Python] 짝지어 제거하기

from collections import deque def solution(s): if len(s) % 2 == 1 : return 0 s = deque(s) temp = [] i = s.popleft() while s : j = s.popleft() if i == j : if not s : return 1 else : if temp : i = temp.pop() else : i = s.popleft() continue else : temp.extend(i) i = j return 0 너무 복잡하게 생각한 문제... ※ 더 쉬운 풀이는 밑에 있어요 ! ※ 1) 홀수 거르기, 처음 from collections import deque def solution(s): if len(s) % 2 == 1 : r..

[Python] 로또의 최고 순위와 최저 순위

def solution(lottos, win_nums): count_z = lottos.count(0) lottos = sorted(lottos, reverse=True) answer = 0 for num in lottos : if num == 0 : break elif num in win_nums : answer += 1 rank = {6:1, 5:2, 4:3, 3:4, 2:5, 1:6, 0:6} return [rank[answer+count_z], rank[answer]] 풀이 먼저 0의 개수를 count함수를 이용해 추출한다. 최고 순위는 0(알아볼수 없는 숫자)이 다 맞았다고 가정하여 "알아볼 수 있는 숫자 중 맞은 개수 + 0의 개수"의 순위이고, 최저 순위는 0이 다 틀렸다고 가정하여 "알아 ..

[Python] 소수 만들기

from itertools import combinations def solution(nums): coms = list(combinations(nums, 3)) answer = 0 for com in coms : num = sum(com) count = 0 for i in range(2, num+1) : if num % i == 0 : count += 1 if count == 1 : answer += 1 return answer 풀이 ① combinations 함수를 사용하여 입력받은 nums에서 숫자 3개를 가져와 만들수 있는 조합을 coms에 리스트로 받는다. ② for 문을 통해 3개의 조합의 합이 ➀ (2번째 for문) 2부터 자기자신까지 반복하면서 i로 나누었을때 나누어 떨어지면 count에 +..