Stack : resizing-array implementation array의 크기를 재조정하는 것은 아주아주 비효율적인 방식입니다. 왜냐하면 크기를 재조정할 때마다 배열의 모든 아이템을 복사해야 하기 때문이죠. 이러한 경우 N개의 아이템을 삽입할 때, 총 연산 횟수는 (N^2) / 2이기 때문에 N이 충분히 클 때는 활용 불가능한 방식입니다. 따라서 배열의 크기를 매번 재조정하는 것이 아니라, 배열이 꽉 찼을 때만 이를 두 배로 늘리는 방식을 사용합니다. 이때는 N개의 아이템을 삽입할 때 N만큼의 시간이 걸립니다. Stack : amortized cost of adding to a stack Stack : resizing-array implementation 배열의 크기를 줄일 때도, 그 작업을 매번..
Stacks and queues Stack : 가장 최근(마지막)에 추가된 아이템을 확인하는 자료구조 Queue : 가장 처음에 추가된 아이템을 확인하는 자료구조 Client, implementation, interface Stack API Stack과 관련된 아주 기본적인 method입니다. stack에 아이템을 추가하는 push, 마지막 아이템을 제거하며 반환하는 pop, stack이 비었는지 확인하는 isEmpty 등이 있습니다. 물론 Java 기준이기 때문에 Python과 약간의 차이는 있지만 LIFO 구조 자체는 동일합니다. Stack test client 아주 간단한 stack 예제 입니다. 문자열이 '-'과 동일할 땐 pop하며 출력, 그렇지 않을 땐 stack에 추가합니다. 따라서 예시는 ..
문제 링크 https://www.acmicpc.net/problem/2110 2110번: 공유기 설치 첫째 줄에 집의 개수 N (2 ≤ N ≤ 200,000)과 공유기의 개수 C (2 ≤ C ≤ N)이 하나 이상의 빈 칸을 사이에 두고 주어진다. 둘째 줄부터 N개의 줄에는 집의 좌표를 나타내는 xi (0 ≤ xi ≤ 1,000,000,000)가 www.acmicpc.net 소스 코드 import sys def main(): N,C = map(int, input().split()) house = [] for _ in range(N): house.append(int(sys.stdin.readline().strip())) house.sort() answer = 0 left, right = 1, house[-1..
문제 링크 https://www.acmicpc.net/problem/20040 20040번: 사이클 게임 사이클 게임은 두 명의 플레이어가 차례대로 돌아가며 진행하는 게임으로, 선 플레이어가 홀수 번째 차례를, 후 플레이어가 짝수 번째 차례를 진행한다. 게임 시작 시 0 부터 n − 1 까지 고유한 www.acmicpc.net 소스 코드 import sys sys.setrecursionlimit(10**6) def main(): n, m = map(int, sys.stdin.readline().strip().split()) parents = [x for x in range(n)] # 부모 노드 리스트 def root(x): if x != parents[x]: # 자기 자신이 될 때까지 재귀 parents..
문제 링크 https://www.acmicpc.net/problem/2512 2512번: 예산 첫째 줄에는 지방의 수를 의미하는 정수 N이 주어진다. N은 3 이상 10,000 이하이다. 다음 줄에는 각 지방의 예산요청을 표현하는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 값들은 모두 1 이상 www.acmicpc.net 소스 코드 import sys def main(): n = int(input()) nums = sorted(list(map(int, sys.stdin.readline().strip().split()))) m = int(input()) low, high = 0, max(nums) # 최소, 최대 answer = 0 # 최종 정답 저장 while low
2023.04.03(월), 삼성 상반기 신입 공채 서류 결과가 발표되었다고 하네요! 이번에는 정말 발표가 나든 말든.. 하고 있어서 아예 잊고 있었는데요, 심지어 떨어져서 알 길이 없었습니다 ㅋㅋㅋ IT 분야로 취업을 해야겠다 마음 먹은지 딱 1년이 지났네요. 지금까지 그래도 배우고 싶다, 성장하고 싶다는 걸 어필하는게 중요한 지원에서 떨어져 본 적이 없는데 신기하긴 합니다. 특히 이번에는 자소서랑 이력서를 좀 맛깔나게 잘 썼거든요 ㅋㅋㅋㅋ (혼자만의 착각..? 🤔) 변수라면.. 제가 인문계열 전공자라서 애초에 SW 직군으로 지원을 할 수가 없더라구요. 그걸 성적입력, 에세이 작성 다 끝내고 제출할 때 알았더랍니다.. 안그래도 바뀐 UI 때문에 힘들었는데.. 😭 원래 이번에는 AI 연구직 쪽으로 지원을 ..