프로그래머스(파이썬)/LV.1(파이썬)
체육복→ 앞에 확인하고, 뒤에 확인하고, set의 차집합(-)★
나의 풀이 def solution(n, lost, reserve): # 1. Set을 만든다. lost와 reserve에 동시에 속에 있는 학생을 제외 reserve_only =set(reserve)-set(lost) lost_only = set(lost) - set(reserve) # 2. 여분을 기준으로 앞뒤를 확인하여 체육복을 빌려준다. for reserve in reserve_only: front= reserve-1 back =reserve+1 if front in lost_only: #항상 앞 먼저 확인하고, 앞에서 여벌을 주었을 때 그 학생번호를 제거하기 때문에 동일학생에 대하여 체육복을 2개주는 경우는 없다. lost_only.remove(front) elif back in lost_only..
로또의 최고순위와 최저순위★★ → "그외"처리 + in 연산자 +인덱스==등수
나의 풀이 def solution(lottos, win_nums): answer = [] zero_cnt = lottos.count(0) a = [x for x in lottos if x in win_nums] max=zero_cnt+len(a) min=len(a) max =7-max if max >=1 else 6 min =7-max if max >=1 else 6 return [max, min] 다른 사람의 풀이 def solution(lottos, win_nums): rank=[6,6,5,4,3,2,1] cnt_0 = lottos.count(0) ans = 0 for x in win_nums: if x in lottos: ans += 1 return rank[cnt_0 + ans],rank[ans]
푸드 파이트 대회→deque() + while문 + cnt-=1→소모개념★★+ 우측에서 좌측으로
나의 풀이 from collections import deque def solution(food): q= deque() q.append('0') print(q) for idx in range(len(food)-1, 0, -1): print(idx) number = food[idx]//2 number_str=str(idx) for _ in range(number): q.append(number_str) q.appendleft(number_str) print(q) return "".join(q) 다른 사람의 풀이 def solution(food): answer ="0" for i in range(len(food)-1, 0,-1): c = int(food[i]/2) while c>0: answer = str(..
콜라 문제→ 치킨 쿠폰과 매우 유사★★
나의 풀이 def solution(a, b, n): sum =0 while(n>=a): taken = n//a *b sum=sum+taken n = n %a +taken return sum