본문 바로가기

난 이 분야 전문가야!/Algorithm

[C#] 선형 자료구조 (Array, Dynamic Array, Linked List) 취준을 위해 다시 정리해본다. 대학교 1학년 때 잘 이해도 안되는 연결리스트를 c로 직접 구현하느라 애를 많이 썼던 기억이 아직도 생생하다...  선형 구조는 자료를 순차적으로 나열한 형태이다.배열, 동적 배열연결 리스트스택 / 큐 배열 (Array)배열은 고정된 크기의 연속적인 메모리 블록에 데이터를 저장한다. 모든 요소가 동일한 데이터 타입을 가지며, 인덱스를 사용하여 요소에 접근할 수 있다. 장점빠른 인덱스 접근: 특정 인덱스의 요소에 O(1) 시간 복잡도로 접근할 수 있다.메모리 효율성: 요소들이 연속적으로 저장되므로 메모리 오버헤드가 적다.단점고정 크기: 배열의 크기를 초기화할 때 정해야 하며, 이후에는 크기를 변경할 수 없다.비효율적인 삽입 및 삭제: 요소를 삽입하거나 삭제할 때, 특히 배열의.. 더보기
[백준][python] 12904 A와 B - 풀이공유 오늘은 학회 때문에 제주도에 와서 문제를 푸는 색다른 경험을 하네요... https://www.acmicpc.net/problem/12904 12904번: A와 B 수빈이는 A와 B로만 이루어진 영어 단어가 존재한다는 사실에 놀랐다. 대표적인 예로 AB (Abdominal의 약자), BAA (양의 울음 소리), AA (용암의 종류), ABBA (스웨덴 팝 그룹)이 있다. 이런 사실에 놀란 수 www.acmicpc.net 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 S = input() T = input() t_list = list(T) for _ in range(len(T) - len(S)): if t_list[-1] == 'A': t_list.pop(-1) elif t_l.. 더보기
[백준][Python] 11399 ATM - 풀이공유 오늘은 간단한 Greedy 알고리즘으로 풀이 가능한 백준 ATM 문제를 풀어보았습니다. https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 1 2 3 4 5 6 7 8 9 10 11 12 13 N = int(input()) p = list(map(int, input().split())) p.sort() total_delay = 0 for i in range(N): temp = p[i] p[i] = total_delay + temp total_delay += temp print(.. 더보기
프로그래머스 :: 종이접기 - python 풀이 공유 https://programmers.co.kr/learn/courses/30/lessons/62049 코딩테스트 연습 - 종이접기 직사각형 종이를 n번 접으려고 합니다. 이때, 항상 오른쪽 절반을 왼쪽으로 접어 나갑니다. 다음은 n = 2인 경우의 예시입니다. 먼저 오른쪽 절반을 왼쪽으로 접습니다. 다시 오른쪽 절반을 왼쪽�� programmers.co.kr 1 2 3 4 5 6 7 8 9 10 11 12 def solution(n): cur = [0] for i in range(n - 1): next = [] for j in range(len(cur)): if j % 2 == 0: next.extend([0,cur[j],1]) else: next.append(cur[j]) cur = next[:] re.. 더보기
프로그래머스 :: 쇠막대기 - python 풀이 공유 https://programmers.co.kr/learn/courses/30/lessons/42585 코딩테스트 연습 - 쇠막대기 여러 개의 쇠막대기를 레이저로 절단하려고 합니다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자릅니다. 쇠막대기와 레� programmers.co.kr 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 def solution(arrangement): answer = 0 cur_pipe = 0 laser = False for i in range(len(arrangement)): if laser: laser = False continue if arrangement[i] == .. 더보기
프로그래머스 :: 스킬트리 - c++ 풀이 공유 https://programmers.co.kr/learn/courses/30/lessons/49993 코딩테스트 연습 - 스킬트리 programmers.co.kr 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 #include #include using namespace std; int solution(string skill, vector skill_trees) { int answer = 0; int cur, next; bool flag; for(int i = 0;i 더보기
프로그래머스 :: 탑 - c++ 풀이 공유 https://programmers.co.kr/learn/courses/30/lessons/42588 코딩테스트 연습 - 탑 수평 직선에 탑 N대를 세웠습니다. 모든 탑의 꼭대기에는 신호를 송/수신하는 장치를 설치했습니다. 발사한 신호는 신호를 보낸 탑보다 높은 탑에서만 수신합니다. 또한, 한 번 수신된 신호는 다 programmers.co.kr 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 #include #include using namespace std; vector solution(vector heights) { vector answer; int j; answer.push_back(0); for(in.. 더보기
프로그래머스 :: 크레인 인형뽑기 - c++ 풀이공유 https://programmers.co.kr/learn/courses/30/lessons/64061?language=python3 코딩테스트 연습 - 크레인 인형뽑기 게임 [[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4 programmers.co.kr 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 #include #include using namespace std; int solution(vector board, vector moves) { int answer = 0; int i, j; vector stack.. 더보기

728x90