PS
-
[자료구조] Stack(스택), Stack OverflowPS/알고리즘_자료구조 2023. 2. 5. 15:15
피드백과 정보 정정 댓글은 환영입니다 :) 오랜만에 티스토리에 글 쓰러 와보았다! 마지막 게시물에 1월 초인것을 보아하니 반성해야 될 감이;; 갑자기 스택에 대한 내용을 쓰기로 결심한 이유는 바로~ 지금 작업하고 있는 코드에서 스택 오버플로우 에러가 너무 많이 나서... 아마 이유는 과도한 재귀 함수 호출인 것 같아서... 본질부터 꿰뚫어보고자 기초 지식을 쌓기로 하였답니다 ㅎㅎ 1) Stack이란? 스택은 후입선출의 구조를 갖는 자료구조이다. 우리가 부추전을 여러장을 구워 쌓아놓았을 때, 가장 먼저 먹을 수 있는 전은 가장 위에 있는, 즉 이제 막 구워진 전인 것처럼 나중에 넣은 값이 가장 먼저 나오는 LIFO(Last In First Out) 구조라는 이야기이다. 이렇게 스택에 접근할 수 있는 요소는..
-
[Problem Solving] 그리디 알고리즘/PythonPS/백준 2023. 1. 11. 16:45
피드백과 정보 정정 댓글은 환영입니다 :) #백준 11047번 동전 0 Python3 import sys N, K = map(int, sys.stdin.readline().split()) value = [0] * N cnt = 0 for i in range(N): value[i] = int(sys.stdin.readline()) for j in range(N-1,-1,-1): d = K//value[j] if d > 0: cnt = cnt + d K = K % value[j] if K == 0: print(cnt) break # 백준 11047번 동전0 Python3 정해진 가치를 채우면서 최소 개수의 동전을 사용해야 하는 문제이다. 총 60의 가치를 채우기 위해서는 최대한 큰 가치를 가진 동전으로 가치..
-
[알고리즘] 욕심쟁이 알고리즘(Greedy Algorithm)PS/알고리즘_자료구조 2023. 1. 11. 15:45
해당 게시글은 비전공자이자 초보 개발자 지망생이 작성한 글로 정확하지 않을 수 있으니 참고해주시길 바랍니다! 피드백과 정보 정정 댓글은 환영입니다 :) 1) 그리디 알고리즘이란? 직역하면 욕심쟁이 알고리즘이라는 뜻을 가진 해당 알고리즘은 선택의 순간이 올 때마다 당장 최적인 답을 선택하는 풀이 방법을 의미한다. 물론, 해당 풀이 방법을 사용한다고 해서 종합적으로 보았을 때 최적의 해가 도출된다는 것이 항상 보장되지는다. 하지만 부분 문제들의 최적해들의 집합이 전체 문제의 최적해가 되는 문제의 경우 그리디 알고리즘을 활용하여 해결할 수 있다. 2) Optimal Substructure Property? 전체 문제의 최적해가 부분 문제들의 최적해의 집합으로 이루어져있을 때를 의미한다. 3) Greedy Ch..
-
[알고리즘/자료구조] Heap/Heap sortingPS/알고리즘_자료구조 2022. 10. 2. 22:19
해당 게시글은 비전공자이자 초보 개발자 지망생이 작성한 글로 정확하지 않을 수 있으니 참고해주시길 바랍니다! 피드백과 정보 정정 댓글은 환영입니다 :) 퀵정렬까지 한꺼번에 정리하려고 했으나 생각해보니 저번 학기 자료구조 강의를 들으며 힙에 대해 배웠던 터라... ㅎ 더 기억이 사라지기 전에 한꺼번에 정리해보려 한다! 1) Heap이란? Heap은 아래의 특성을 가진 이진 트리 (Binary Tree)의 구조를 따른다. - 트리는 완전하거나 거의 완전해야 한다. (Complete or Nearly Complete) - 각 노드의 key value는 자신의 후손들보다 항상 크거나 같아야 한다. (max-heap) 따라서, Heap (앞으로 언급하는 heap은 특별한 언급이 없는 이상 모두 max-heap을 ..
-
[알고리즘] 정지 문제/삽입 정렬/합병 정렬PS/알고리즘_자료구조 2022. 9. 13. 19:38
해당 게시글은 비전공자이자 초보 개발자 지망생이 작성한 글로 정확하지 않을 수 있으니 참고해주시길 바랍니다! 피드백과 정보 정정 댓글은 환영입니다 :) 1) Halting Problem (정지 문제) 정지 문제 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 계산 복잡도 이론에서 정지문제(停止問題, halting problem)는 판정 문제의 일종으로 다음과 같이 요약할 수 있다. 프로그램을 설명한 것과 처음 입력값이 주어졌을 ko.wikipedia.org 특정 프로그램이 무한 루프를 돌 것인지, 혹은 정지할 것인지를 판별할 수 있는 알고리즘은 존재하지 않는다. 이는 곧 해당 문제가 unsolvable 하다는 의미이다. 이를 증명하기 위해서 귀류법을 사용할 것이다. "Halting ..
-
[Problem Solving] 프로그래머스 카카오 코테 기출 Lv1PS/프로그래머스 2022. 8. 5. 15:39
해당 게시글은 비전공자이자 초보 개발자 지망생이 작성한 글로 정확하지 않을 수 있으니 참고해주시길 바랍니다! 피드백과 정보 정정 댓글은 환영입니다 :) 오늘 부로 프로그래머스에 나와있는 Lv1 문제를 다 풀었다! 하지만 Lv5까지 있는 걸 보니 앞으로 더 열심히 해야겠다는 생각이 ^^ 일단 이번 여름방학에는 백준 단계별 절반과 프로그래머스 Lv2까지 풀어보는 것으로 해보자.. 아무튼 Lv1을 다 완료한 기념! 카카오 코테 기출(이라고 해봤자 Lv1) 코드들을 정리해보자~ 신고 결과 받기(Python3) - 2022 KAKAO BLIND RECRUITMENT def solution(id_list, report, k): warning = dict() message = dict() result = [0] * ..
-
[Problem Solving] 정수론 및 조합론 백준 예제/PythonPS/백준 2022. 7. 30. 22:28
해당 게시글은 비전공자이자 쌩초보 개발자 지망생이 작성한 글로 정확하지 않을 수 있으니 참고해주시길 바랍니다! 피드백과 정보 정정 댓글은 환영입니다 :) 이번에 해결해 본 단계는 기하1에 이어서 정수론 및 조합론이다! 해당 단계에서 사용하는 주된 수학적 개념은 배수/약수/조합이었다. 그래서인지 기하1과 마찬가지로 그렇게 어려운 논리를 포함한 문제들은 아니라는 생각이 아주 조심스럽게 들었다. 이제 하나씩 문제들과 해결 코드를 살펴보자! # 백준 1934번 최소공배수 Python3 #유클리드 호제법 사용 import sys T = int(sys.stdin.readline()) for _ in range(T): A, B = map(int, sys.stdin.readline().split()) n1 = max(..
-
[Problem Solving] 기하1 백준 예제/PythonPS/백준 2022. 7. 27. 16:40
해당 게시글은 비전공자이자 쌩초보 개발자 지망생이 작성한 글로 정확하지 않을 수 있으니 참고해주시길 바랍니다! 피드백과 정보 정정 댓글은 환영입니다 :) 도형을 활용하여 푸는 문제였던 기하1 ! 유독 원을 활용하여 푸는 문제가 많았던 것 같다. 그래서인지 고등학교 수학(상)에 나온 개념들을 활용하여 충분히 풀 수 있었다. 또한, 개인적으로 시간 초과에서 자유로운 문제들이라는 생각이 들었다 ㅎㅎ # 백준 2477번 참외밭 Python3 import sys K = int(sys.stdin.readline()) east_west_len = [] south_north_len = [] length = [] for i in range(6): direction, lengths = map(int, sys.stdin.r..