You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
importheapqimportsysinput=sys.stdin.readlinedefsolve():
N=int(input())
values= [0] *Nforiinrange(N):
values[i] =tuple(map(int,input().split()))
values.sort()
# heapq로 현재 사용 중인 자리의 끝나는 시간을 담고 있음.end_que= []
# heapq로 현재 사용 가능한 자리의 idx를 담고 있음.idx_que= []
# 각 자리별 사용 인원 수cache= [0] *Nnxt_idx=0forstart,endinvalues:
# 현재 사용 중인 인원이 있다면iflen(end_que):
# 그 중 가장 빨리 끝나는 사람을 찾는다.fastest_end, fastest_idx=end_que[0]
# 만약 fastest_end가 start 보다 작다면 (즉 그 자리를 쓸 수 있다면)iffastest_end<=start:
try:
# fastest_end가 start보다 커지거나 end_que가 빌때까지# 계속 빼내서 idx_que에 넣음whilefastest_end<=start:
f_end, f_idx=heapq.heappop(end_que)
heapq.heappush(idx_que, f_idx)
fastest_end, fastest_idx=end_que[0]
except:
passtry:
# idx_que에 value가 있다면 가장 빠른 자리를 찾는다.idx=heapq.heappop(idx_que)
cache[idx] +=1heapq.heappush(end_que, (end, idx))
continueexcept:
pass# 사용중인 인원이 없거나, 빈자리가 없고 가장 빨리 끝나는 사람이 내 시작시간보다 느리면# 새로운 자리를 추가한다.cache[nxt_idx] +=1heapq.heappush(end_que, (end, nxt_idx))
nxt_idx+=1print(nxt_idx)
print(*cache[:nxt_idx])
solve()
importsysinput=sys.stdin.readlinedefsolution():
# 알파벳 하나 하나를 가지는 dictonary 중첩으로 푼다.# 만약 dict[char]의 len이 1이라면 자동완성이 되는걸로 쳐서 count를 하지 않는다.n=int(input())
words= [0] *n# root에 tmp를 추가해 시작 알파벳이 다 같은 경우여도 count가 1은 나오게 해줘서# 첫글자는 자동완성이 안되는 것처럼 했다.root= {}
root[""] =0foriinrange(n):
# 단어를 입력받고words[i] =input().rstrip()
cur=root# 각 단어의 글자마다 dict 안을 들어간다.forcharinwords[i]:
try:
cur=cur[char]
except:
cur[char] = {}
cur=cur[char]
# 해당 단어에서 끝나는 경우와 그 이상으로 이어지는 경우 거르기 위해 tmp 추가cur[""] =0result=""# 각 단어로 쭉 파고 들어가면서 count 한다.foriinrange(n):
count=0cur=rootforcharinwords[i]:
iflen(cur) !=1:
count+=1cur=cur[char]
result+=str(count) +"\n"print(result)
solution()
정산
심규진 x3
손현수 x2
박진수
최성원
모범 답안 작성 후 해설 작성시 모범 답안 채택 갯수 시상에 우대합니다(동점자 발생시). 모범 답안 선정되신 분들은 다른 학우분들이 코드를 보고 공부하실 수 있도록 해설 남겨주시면 감사드리겠습니다.
코드에 주석으로 달아주신 분들은 해설을 작성해주신것으로 간주하겠습니다. 물론 추가 해설을 작성해주시면 너무 감사드립니다.
해설은 본 이슈에 계속 달아주세요!
모범 답안 및 해설에 대한 질문이 있으신 분들도 여기에 같이 남겨주시면 좋을 것 같습니다. 슬랙 #dcomding 채널을 이용해주셔도 좋습니다.
The text was updated successfully, but these errors were encountered:
개요
모범 답안
1. 화살표
문제 보기
정답 : 11명
박진수
2. 상자 쌓기
문제 보기
정답 : 8명
최성원
dp를 이용한 풀이
3. 싸지방
문제 보기
정답 : 6명
심규진
Priority Queue를 이용한 풀이
손현수
세그먼트 트리를 이용한 풀이
4. 명단 관리
문제 보기
정답 : 3명
심규진
Linked List를 이용한 풀이
손현수
펜윅트리를 이용한 풀이
5. 자동 완성
문제 보기
정답 : 4명
심규진
Trie를 이용한 풀이
정산
모범 답안 작성 후 해설 작성시
모범 답안 채택 갯수 시상
에 우대합니다(동점자 발생시). 모범 답안 선정되신 분들은 다른 학우분들이 코드를 보고 공부하실 수 있도록 해설 남겨주시면 감사드리겠습니다.코드에 주석으로 달아주신 분들은 해설을 작성해주신것으로 간주하겠습니다. 물론 추가 해설을 작성해주시면 너무 감사드립니다.
해설은 본 이슈에 계속 달아주세요!
모범 답안 및 해설에 대한 질문이 있으신 분들도 여기에 같이 남겨주시면 좋을 것 같습니다. 슬랙 #dcomding 채널을 이용해주셔도 좋습니다.
The text was updated successfully, but these errors were encountered: