Total
파이썬 자료구조 set
롤케이크 자르기 (해시, Counter, set) karla.tistory.com # add() 요소 추가 my_set = {10, 20, 30} my_set.add(40) # {10, 20, 30, 40} # remove() 요소 삭제 my_set = {10, 20, 30} my_set.remove(10) # {20, 30} # Intersection (교집합) set1 = {3, 4, 9, 1, 4, 2, 5, 6, 7, 8, 10} set2 = {5, 6, 7, 8, 9, 10} # {5, 6, 7, 8, 9, 10} # Union (합집합) set1 = {3, 4, 9, 1, 4, 2, 5, 6, 7, 8, 10} set2 = {5, 6, 7, 8, 9, 10} print(set1 | set2) ..
롤케이크 자르기 (해시, Counter, set)
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr from collections import Counter def solution(topping): dic = Counter(topping) set_dic = set() res = 0 for i in topping: dic[i] -= 1 set_dic.add(i) if dic[i] == 0: dic.pop(i) if len(dic) == len(set_dic): res += 1 return res
햄버거 만들기 (스택)
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(ingredient): s = [] cnt = 0 for i in ingredient: s.append(i) if s[-4:] == [1, 2, 3, 1]: cnt += 1 for _ in range(4): s.pop() return cnt
택배 상자(스택, 큐)
영재가 5개의 상자를 실어야 하며, 택배 기사님이 알려준 순서가 [4, 3, 1, 2, 5] 영재는 우선 첫 번째, 두 번째, 세 번째 상자를 보조 컨테이너 벨트에 보관합니다. 그 후 네 번째 상자를 트럭에 싣고 보조 컨테이너 벨트에서 세 번째 상자 빼서 트럭에싣습니다. 다음으로 첫 번째 상자를 실어야 하지만 보조 컨테이너 벨트에서는 두 번째 상자를, 기존의 컨테이너 벨트에는 다섯 번째 상자를 꺼낼 수 있기 때문에 더이상의 상자는 실을 수 없습니다. 따라서 트럭에는 2개의 상자만 실리게 됩니다. def solution(order): assist = [] i = 1 cnt = 0 while i != len(order)+1: assist.append(i) while assist and assist[-1] =..
N-Queen (DFS)
def dfs(queen, n, row): count = 0 if n == row: return 1 for col in range(n): queen[row] = col for x in range(row): if queen[x] == queen[row]: # 세로 break if abs(queen[x]-queen[row]) == (row-x): # 대각선 break else: count += dfs(queen, n, row+1) return count def solution(n): queen = [0]*n return dfs(queen, n, 0)
모의고사 (반복되는 리스트 값 비교, 인덱스)
def solution(answers): a=[1,2,3,4,5] b=[2,1,2,3,2,4,2,5] c=[3,3,1,1,2,2,4,4,5,5] t1=t2=t3=0 for i in range(len(answers)): if a[i%5]==answers[i]: t1+=1 if b[i%8]==answers[i]: t2+=1 if c[i%10]==answers[i]: t3+=1 maxval=max(t1,t2,t3) answer=[] if maxval == t1: answer.append(1) if maxval == t2: answer.append(2) if maxval == t3: answer.append(3) return answer