728x90
반응형

알고리즘 5

[Algorithm] C++ 문자열 공백 포함해서 입력받기(feat. getline(), cin.getline() 사용하기)

알고리즘 문제를 풀다보면 띄어쓰기 문자열을 입력받는 경우가 많다. int형은 익숙한데 문자열을 다루는 것에 익숙하지 않아 이참에 정리하고자 한다.문자열 입력받는 방법(공백 없음) - char 와 scanf 이용해서 입력받기#include #include using namespace std;int main() { cout  - char 와 cin 이용해서 입력받기#include #include using namespace std;int main() { cout > day; cout - string과 cin으로 입력 받기#include #include #include using namespace std;int main() { cout > day; cout 위와같은 방법은 공백없이 ..

Algorithm 2022.01.22

[LeetCode 142] 142. Linked List Cycle II(feat. 플로이드의 순환찾기 알고리즘)

영어로 문제를 푼다는것은 자신감을 떨어뜨리고 내가 맞게 해석했는지 의문이 든다... 리트코드에 적응하면 조금은 괜찮아질거라 믿으며 글을쓴다. 이 문제는 모르면 못푸는 문제이다. 몰라서 못풀었고 토끼와 거북이 알고리즘이란 것을 알게되어 배움의 의미로 글을 작성한다. 토끼와 거북이 알고리즘이란 토끼와 거북이 알고리즘은 LinkedList에서 순환 루프 여부를 확인하고 순환 루프의 시작 노드를 알아내는 데 사용되는 알고리즘이다. 자세한 증명 과정은 다음과 같다. 코드 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; ..

Algorithm 2022.01.20

[C++] string::to_string 사용하기(feat. int, double, float -> stirng 변환)

알고리즘 문제를 풀다보면 string을 int로 int를 string으로 변환해야하는경우가 생긴다. 오늘은 그중에서 int를 string으로 변환하는 to_string 함수에대해 알아보도록 하겠다. 헤더파일 std::to_string 함수를 사용하려면 헤더 파일을 선언 해주어야 한다. #include 예제 #include #include using namespace std; int main(void) { int Inumber = 20; double Dnumber = 3.0; //int를 string으로 변환 string str = to_string(Inumber); cout

Algorithm 2022.01.02

[Algorithm] sort() 함수 사용하기(feat. compare 이용하기 )

알고리즘 문제를 풀다보면 정렬을 해야할 때가 많으며 대부분 c++ 라이브러리를 사용하여 정렬을 하는 경우가 많다. 이번엔 sort함수를 간단하게 알아보고 정렬하기 위해 sort의 세번째 인자로 전달해 주는 함수 사용법을 알아보도록 하겠다. sort() 란 먼저 sort()를 사용하기 위해 algorithm 헤더파일을 include 해야한다. sort 함수는 내부적으로 IntroSort라는 정렬 방법으로 구현되어있다. 이 방법은 QuickSort와 HeapSort와 InsertionSort를 합쳐놓은 방식으로 평균 nlogn, 최악의 경우 n^2의 시간 복잡도를 가지는 QuickSort와는 달리, 최악의 경우에도 nlogn을 복잡도를 보장한다. https://en.wikipedia.org/wiki/Intr..

Algorithm 2021.09.21

[Algorithm] 회의실 배정문제 BOJ 1931 (feat. Activity Selection Problem, 그리디 알고리즘)

그리디 알고리즘 그리디 알고리즘은 탐욕 알고리즘이라고도 불리며 어떤 순간에 가장 최선의 선택을 하는것을 말한다. 특징은 local하게 최적의 선택을 하는것이 결국 global하게 최적의 해를 도출해준다. Activity-selection-problem이란? 그리디 알고리즘을 보여주는 한 예시이며 문제는 다음과 같다. 한개의 강의실에 n개의 수업들이 있다. 이때 각 수업은 시작시간 끝나는 시간이 주어진다. 이때, 한개의 강의실에서 수업이 최대 개수가 될 수 있도록 하는 수업 수를 찾으시오. 이때 문제를 해결하기 위해서는 끝나는 시간을 기준으로 오름차순 정렬한다. 그리고 겹치지 않는 선에서 수업을 선택하여준다. 다음은 위의 문제풀이 방식의 증명이다. 1 < x < y 이면서 수업의 최대 개수 집합이 A = ..

Algorithm 2021.09.21
728x90
반응형