분류 전체보기(408)
-
(TIL) 20210603
1.Facts(한 것) 학교 과제 완성 및 제출 알고리즘 복습 운동하기 C++, 자바스크립트로 프로그래머스 문제 풀기 2.Findings(배운 것) #include #include #include #define TRUE 1 #define FALSE 0 #define MAX_VERTICES 100 #define INF 1000000 typedef struct GraphType { int n; int weight[MAX_VERTICES][MAX_VERTICES]; } GraphType; int distance[MAX_VERTICES]; int found[MAX_VERTICES]; int choose(int distance[], int n, int found[]) { int i, min, minpos; min..
2021.06.03 -
(TIL) 20210602
1.Facts(한 것) 학교 과제 완성 및 제출 프로그래머스 문제 풀기 2.Findings(배운 것) 과제는 마지막 날 하는 것이 가장 효율이 좋다 (정신적 효율 제외) 프로그래머스에서 두 개 뽑아서 더하기라는 문제를 풀었다. 문제에서 요구하는 답은 주어진 배열에서 두 가지를 뽑아서 더한 값들의 집합을 리턴하면 되는 것이다. 아래는 내가 짠 코드이다. #include #include #include #include #include using namespace std; stack temp; vector arr; vector solution(vector numbers) { vector answer; for(int i = 0; i < numbers.size(); i++) { for(int j = i+1; j ..
2021.06.02 -
(TIL) 20210601
1.Facts(한 것) C++, 파이썬으로 프로그래머스 문제 풀기 알고리즘 퀴즈 풀기 학교 과제 수행 2.Findings(배운 것) 아침에 일어나서 학교 알고리즘 수업 퀴즈를 풀었다. 프림 알고리즘에서의 트리에 노드 삽입 순서와 크루스 칼 알고리즘의 cut property에 대해서 문제가 나왔다. 다행히도 열심히 복습해서인지 다 맞은 것 같다. 파이썬을 책을 보며 복습하고 있다. 기본적인 입출력부터, 튜플, 리스트 등 기본적인 문법부터 자료구조와 알고리즘을 하나하나 다 파이썬으로 작성해볼 생각이다. 프림 알고리즘의 동작 방식이 두가지가 있는데, 하나는 간선들의 우선순위를 고려한 실행방식, 하나는 노드들의 weight를 고려한 실행방식이 있다. 전자는 lazy version, 후자는 eager versio..
2021.06.02 -
(TIL) 20210531
1.Facts(한 것) C++, 자바스크립트로 프로그래머스 문제 풀기 알고리즘, 자료구조 복습하기 2.Findings(배운 것) MST 알고리즘에 대해서 복습을 했다. kruskal 알고리즘과 prim 알고리즘에 관해서 수업을 들었는데 자료구조 그래프에 대한 이해도가 떨어져서, 자료구조를 복습 할 수 밖에 없었다. c++로 prim 알고리즘을 어떻게 구현할까 찾아보다가 C++11부터 추가된 unordered_map이라는 라이브러리가 생겼고, 해시맵이랑 거의 동일하게 사용이 가능했다. 우선순위 큐를 사용해서 동작하는 프림 알고리즘은 바이너리 힙을 사용했을때 비용이 ElogV이고 피보나치 힙을 사용했을때 비용이 E +VlogV다. 3.Feeling(느낀 점) 트리랑 그래프 문제를 왜 못 풀었는지 알겠다.....
2021.06.01 -
(TIL) 20210529
1.Facts(한 것) C++, 자바스크립트로 프로그래머스 문제 풀기 알고리즘 수업 듣기 자료구조 정리 및 포스팅 2.Findings(배운 것) "문제를 잘 읽어라"(제발) 프로그래머스 문제 중 '가장 큰 수'라는 문제가 있다. 이 문제는 이전에도 풀었지만, 다시 한번 풀어보고 싶어 한번 더 풀게 되었고, 그때와는 다른 방식으로 접근하고 싶었다. 문제에서 요구하는 것은 숫자가 든 배열에서 숫자를 정렬하여 가장 큰 수를 리턴하는 것이었다. 가장 쉽게 생각할 수 있는 풀이방법은 문자열로 바꾸어 배열에 넣은 후 비교 함수를 만들어 기준에 따라 정렬한 후 max값을 반환하는 것이다. 이번에는 C++ 내장함수인 next_element를 사용해 보고 싶어서 아래와 같은 코드를 짜봤다. #include #includ..
2021.05.29 -
[자료구조] 큐의 개념, 구현 및 적용 C/C++
📕 큐란?? 자료구조 큐를 이해하기 위해서는 영어 queue가 무엇인지를 알면 역시 이해하기 쉽다.Queue는 명사 '줄' 이라는 뜻이 있다. 그렇다면 대체 왜 "줄"을 자료구조 컨테이너의 이름으로 정했을까?그건 줄을 서는 상황을 생각해보면 알 수 있다.놀이공원에 들어가기 위해서 줄을 선다고 생각해보자. 그렇다면 가장 먼저 입장하는 사람은 누구겠는가?당연히 줄 가장 앞에 있는 사람일 것이다. 반대로 가장 늦게 입장하는 사람은 줄 마지막에 서 있는 사람일 것이다. 아래는 큐를 그린 그림이다.📕 큐의 특징 큐 == 줄 이기 때문에 생기는 특징이 있다.바로 선입선출, First In First Out이다. 그렇기 때문에, pop 함수를 호출하면, 가장 앞에 있는 element가 큐에서 삭제되며,push..
2021.05.29