본문 바로가기

분류 전체보기

(22)
구글, ‘윌로우’로 양자 컴퓨팅 혁신… 보안 대비 서둘러야 면접왕이형 경제신문스크랩 양식경제신문 스크랩 양식​​헤드라인(요약과 압축)​​ 구글, ‘윌로우’로 양자 컴퓨팅 혁신… 보안 대비 서둘러야 기사링크​ https://www.itworld.co.kr/article/3622983/%ea%b5%ac%ea%b8%80-%ec%96%91%ec%9e%90-%ec%b9%a9-%ec%9c%8c%eb%a1%9c%ec%9a%b0-%ea%b3%b5%ea%b0%9c-%eb%ac%bc%eb%a6%ac-%eb%b2%95%ec%b9%99-%ec%b4%88%ec%9b%94%ed%95%98%eb%8a%94.html 본문(본문 내용 복사)​ 구글이 새로운 양자 칩 윌로우(Willow)로 속도와 오류 수정에서 획기적인 발전을 이뤘다. 즉시 유용성을 띄는 것은 아니지만, 양자 보안 준비 일정을..
신고 결과 받기 def solution(id_list, report, k): answer = [] #report에서 중복되는 항목 제거 report = list(set(report)) #id_list를 key로 갖는 value 0인 딕셔너리 생성 id_dict = {id : 0 for id in id_list} id_dict2 = {id : 0 for id in id_list} #split 해서 신고자와 신고 당한 사람 나누기 splitted_report = [r.split() for r in report] #신고 당했을 경우 id_dict에 value 1씩 더해줌 for report_idx in range(len(report)): id_dict[splitted_report[report_idx][1]] += 1 #신고 ..
숫자 문자열과 영단어 num_dict = {'zero':'0','one':'1','two':'2','three':'3','four':'4','five':'5','six':'6','seven':'7','eight':'8','nine':'9'} number_list = list(num_dict.keys()) def solution(s): for number_idx in number_list: if number_idx in s: s = s.replace(number_idx,num_dict[number_idx]) answer = int(s) return answer
k번째 수 구하기 def solution(array, commands): answer = [] for commands_idx in commands: commands_array = array[commands_idx[0]-1:commands_idx[1]] commands_array.sort() answer.append(commands_array[commands_idx[2]-1]) return answer
크레인 인형뽑기 게임 def solution(board, moves): basket = list() #바구니를 리스트로 생성 basket.append(0) #0이 아닌 경우에만 담을 것이기 때문에 인덱스를 위해 0 추가 answer = 0 for idx in moves: for board_idx in range(len(board[0])): if board[board_idx][idx-1] != 0: # 0이 아닌 숫자가 나올 때까지 길이만큼 반복 if basket[-1] == board[board_idx][idx-1]: basket.pop() answer += 2 #바구니의 맨위 값과 같을 경우 터뜨리고 answer에 +2 else: basket.append(board[board_idx][idx-1]) #다를 경우 append..
힙(Heap) 1. 힙 (Heap) 이란? 힙: 데이터에서 최대값과 최소값을 빠르게 찾기 위해 고안된 완전 이진 트리(Complete Binary Tree) 완전 이진 트리: 노드를 삽입할 때 최하단 왼쪽 노드부터 차례대로 삽입하는 트리 힙을 사용하는 이유 배열에 데이터를 넣고, 최대값과 최소값을 찾으려면 O(n) 이 걸림 이에 반해, 힙에 데이터를 넣고, 최대값과 최소값을 찾으면, 𝑂(𝑙𝑜𝑔𝑛)O(logn) 이 걸림 우선순위 큐와 같이 최대값 또는 최소값을 빠르게 찾아야 하는 자료구조 및 알고리즘 구현 등에 활용됨 2. 힙 (Heap) 구조 힙은 최대값을 구하기 위한 구조 (최대 힙, Max Heap) 와, 최소값을 구하기 위한 구조 (최소 힙, Min Heap) 로 분류할 수 있음 힙은 다음과 같이 두 가지 조건을..
트리(Tree) 1. 트리 (Tree) 구조 트리: Node와 Branch를 이용해서, 사이클을 이루지 않도록 구성한 데이터 구조 실제로 어디에 많이 사용되나? 트리 중 이진 트리 (Binary Tree) 형태의 구조로, 탐색(검색) 알고리즘 구현을 위해 많이 사용됨 2. 알아둘 용어 Node: 트리에서 데이터를 저장하는 기본 요소 (데이터와 다른 연결된 노드에 대한 Branch 정보 포함) Root Node: 트리 맨 위에 있는 노드 Level: 최상위 노드를 Level 0으로 하였을 때, 하위 Branch로 연결된 노드의 깊이를 나타냄 Parent Node: 어떤 노드의 다음 레벨에 연결된 노드 Child Node: 어떤 노드의 상위 레벨에 연결된 노드 Leaf Node (Terminal Node): Child No..
해쉬 테이블 (Hash Table) 1. 해쉬 구조 Hash Table: 키(Key)에 데이터(Value)를 저장하는 데이터 구조 Key를 통해 바로 데이터를 받아올 수 있으므로, 속도가 획기적으로 빨라짐 파이썬 딕셔너리(Dictionary) 타입이 해쉬 테이블의 예: Key를 가지고 바로 데이터(Value)를 꺼냄 보통 배열로 미리 Hash Table 사이즈만큼 생성 후에 사용 (공간과 탐색 시간을 맞바꾸는 기법) 단, 파이썬에서는 해쉬를 별도 구현할 이유가 없음 - 딕셔너리 타입을 사용하면 됨 2. 알아둘 용어 해쉬(Hash): 임의 값을 고정 길이로 변환하는 것 해쉬 테이블(Hash Table): 키 값의 연산에 의해 직접 접근이 가능한 데이터 구조 해싱 함수(Hashing Function): Key에 대해 산술 연산을 이용해 데이터..