python 40

5.11 최대힙

#a라는 헤쉬(리스트)를 만들어주고 #반복시킨다. #넣을 숫자를 지정하고 #넣을숫자 n이 -1이라면 종료시키고 #n이 0일 때 헤쉬의 길이가 0(출력할 자료가 없다면) -1출력시키고 #n이 0일 때 헤쉬의 길이가 0이 아니라면 root노드를 출력시켜라 #n이 0이 아니라면 heap함수를 활용해 a라는 헤쉬에 n을 입력시켜라 import heapq as hq a=[] while True: n=int(input()) if n==-1: break if n==0: if len(a)==0: print(-1) else: print(-hq.heappop(a)) #2. 출력시 또 반대로 출력시키면 최대힙을 표현시킬 수 있다. else: hq.heappush(a,-n)#1. 부호가 반대로 들어갔으니까

5.10 최소힙

#a라는 헤쉬(리스트)를 만들어주고 #반복시킨다. #넣을 숫자를 지정하고 #넣을숫자 n이 -1이라면 종료시키고 #n이 0일 때 헤쉬의 길이가 0(출력할 자료가 없다면) -1출력시키고 #n이 0일 때 헤쉬의 길이가 0이 아니라면 root노드를 출력시켜라 #n이 0이 아니라면 heap함수를 활용해 a라는 헤쉬에 n을 입력시켜라 import heapq as hq a=[] while True: n=int(input()) if n==-1: break if n==0: if len(a)==0: print(-1) else: print(hq.heappop(a)) else: hq.heappush(a,n)

5.9 아나그램 구글인터뷰

key 로 value 얻기 >>> a = {'name':'pey', 'phone':'0119993323', 'birth': '1118'} >>> a.get('name') 'pey' >>> a.get('phone') '0119993323' 출처: str1[x]=str1.get(x,0)+1 ==> x라는 키가 존재하면 그 키를 리턴 x라는 키가 존재하지 않으면 0을 출력+1 #str1과 str2 체크사항 str1의 키가 str2에 있는지 체크 str1의 벨류가 str2의 벨류와 모두 같은지 체크 a=input() b=input() str1=dict() str2=dict() for x in a: str1[x]=str1.get(x,0)+1 str1의 키 x(a의 문자중 하나)의 값 str1의 키값중에 x(a의 ..

5.8 단어찾기

딕셔너리 활용해서 5개 4개(5개에서 쓰인것들중 1개를 제외한 것)의 단어중 바뀌지 않은 것 출력시키기 a=int(input()) p=dict() for i in range(a): word=input() p[word]=1 word가 키값으로 활용되고 1은 벨류값으로 넣어진다. for i in range(a-1): word=input() p[word]=0 for key,val in p.items(): p라는 딕셔너리의 쌍 전체=p.items() if val==1: 벨류값이 아직도 1이다? 그것을 출력 print(key) break

3.3 뮤직비디오

def count(capacity): cnt=1 sum=0 for x in Music: if sum>=capacity: cnt+=1 else: sum+=x return cnt n,m=map(int,input().split()) N은 리스트 안의 요소의 수 , M 은 그룹의 수 Music=list(map(int,input().split())) 뮤직 리스트의 길이 maxx=max(Music) Music 리스트안의 최대값 lt=1 리스트 내의 최솟값은 1 rt=sum(Music) 리스트 요소들의 합을 rt로 설정한다 ->왜? 리스트의 요소내의 수들보다는 커야하기 때문 res=0 그룹크기의 최솟값 while lt

2.10 스토쿠

def isok(a): for i in range(9): ch1=[0]*10 ch2=[0]*10 for j in range(9): ch1[a[i][j]]=1 ch2[a[j][i]]=1 if sum(ch1)!=9 or sum(ch2)!=9: Ch가 한번 돌면 그때 true false 판별한다. return False for i in range(3): for j in range(3): ch3=[0]*10 for k in range(3): for s in range(3): ch3[a[i*3+k][j*3+s]]=1 9*9 배열서 9개로 나누어진 칸을 표현하고자 할 때 ex) 옆의 표 if sum(ch3)!=9: return False return True a=[list(map(int,input().split()..