본문 바로가기

자료구조3

[BOJ] 4358. 생태학(Python) 4358번: 생태학 프로그램은 여러 줄로 이루어져 있으며, 한 줄에 하나의 나무 종 이름이 주어진다. 어떤 종 이름도 30글자를 넘지 않으며, 입력에는 최대 10,000개의 종이 주어지고 최대 1,000,000그루의 나무가 주어 www.acmicpc.net 생태학에서 나무의 분포도를 측정하는 것은 중요하다. 그러므로 당신은 미국 전역의 나무들이 주어졌을 때, 각 종이 전체에서 몇 %를 차지하는지 구하는 프로그램을 만들어야 한다. 사용 자료구조 : 해시(Hash) 파이썬 코드는 다음과 같다. from sys import stdin input = stdin.readline nameInfo = dict() # 나무 이름 등장 횟수 nameSet = set() # 중복 없앤 이름 리스트 cnt = 0 while.. 2021. 4. 29.
[DataStructure] Python 자료구조별 시간 복잡도 정리 Python 자료구조별 시간 복잡도 정리 리스트 자료형과 메서드의 시간 복잡도 Operation Example Class Notes 1 Index l[i] O(1) 인덱스로 값 찾기 2 Store l[i] = 0 O(1) 인덱스로 데이터 저장 3 Length len(l) O(1) 리스트 길이 4 Append l.append(5) O(1) 리스드 뒤에 데이터 저장 5 Pop l.pop() O(1) 가장 뒤의 데이터 pop 6 Clear l.clear() O(1) l = [] 7 Slice l[a:b] O(b-a) 슬라이싱되는 요소들 수 만큼 비례 8 Extend l.extend(...) O(len(...)) 확장되는 길이만큼 9 Construction list(...) O(len(...)) 리스트 길이만큼.. 2021. 4. 27.
[BOJ] 14425. 문자열 집합(Python) / Trie 자료구조 14425번: 문자열 집합 첫째 줄에 문자열의 개수 N과 M (1 ≤ N ≤ 10,000, 1 ≤ M ≤ 10,000)이 주어진다. 다음 N개의 줄에는 집합 S에 포함되어 있는 문자열들이 주어진다. 다음 M개의 줄에는 검사해야 하는 문자열들이 주어 www.acmicpc.net 총 N개의 문자열로 이루어진 집합 S가 주어진다. 입력으로 주어지는 M개의 문자열 중에서 집합 S에 포함되어 있는 것이 총 몇 개인지 구하는 프로그램을 작성하시오. 매주 알고리즘 코딩 & 컴공 전공 스터디를 진행하는데, BFS, DFS, 백트래킹, Brute Force, Greedy 등은 자주 푸니까 매주 한 개씩 새로운 알고리즘을 공부해보자 하여 지난 주 이분탐색에 이어 이번 주는 트라이 자료구조에 대해 한번 공부해보기로 했다. .. 2021. 4. 10.