본문 바로가기

알고리즘/이론 정리

(4)
C++ STL 다루기 - vector STL이란 ??STL은 C++에서 제공하는 라이브러리로 편리하게 별도의 구현없이 사용할 수 있는 도구이다. -> vector, list, map, pair, set 등등이 제공된다. vector가 뭘까?? vector는 정보(데이터)를 담을 수 있는 컨테이너라고 할 수 있다. ( = 배열 )따라서, 데이터를 추가, 삭제, 조회 등 데이터를 다룰 때 많이 쓰이는 STL 중 하나이고알고리즘 문제해결에서도 많이 쓰인다. vector 사용법 1) 선언 필수선언 #include 먼저 vector를 쓰기 위해선 선언부터 하자. 2가지의 방법이 있다. 1. 사용할 데이터의 크기(갯수)를 아는 경우(정적) 기본적으로 vector 의 선언은 단순하다. vector a; ( a 는 vector의 이름) 예) ..
문자열 처리(2) 이번 포스팅은 지난 포스팅에 이어서 문자열을 처리하는 방법에 대해 소개하겠습니다. 1. 문자열 비교하기 문자열을 비교는 2가지로 나눠서 볼 수 있습니다. 1) 대소문자 구별해서 비교하기 먼저, 대소문자 구별해서 비교하기는 흔히 알고 있는 단순비교입니다. String s1 = "abc";String s2 = "abc"; int ret = s1.compare(s2); ret == 1 a 와 b 가 같은 경우 ret 0 a 가 b 보다 뒤인 경우 이와 같이 간단히 비교할 수 있습니다. 2) 대소문자 구분없이 비교하기 다음으로는 대소문자 구분없이 비교하기입니다. String s1 = "hello";String s2 = "HELLO"; int ret = s..
문자열 처리(1) 문자열 처리는 알고리즘 문제에서 종종 나오는 문제입니다. 이번 포스팅은 간단한 문자열 처리에 대해서 정리를 해보겠습니다. C++ 에서는 string 클래스를 사용하여 문자열을 처리할 수 있습니다. 1. 문자열 선언 방법은 2가지가 있다. 1) string s1 = "abc"; 2) string s2 = string("def"); 2. 문자열 추가 1) '+' 연산 사용하기문자열과 문자열을 더할 때 , 문자열과 문자를 더할 때 사용(s1 = "abc", s2 = "def")string s = s1 + s2; -> "abcdef" char c = 'd';string s = s + c; -> "abcdefd"; 2) push_back() 메소드 사용하기기존의 문자열 뒤에 원소를 추가한다.string s = "..
완전 탐색(Brute-force) 완전 탐색이란?말 그대로 완전히 탐색, 답이 나올 때까지 샅샅이 찾는 방법이다.컴퓨터의 순기능을 이용한 탐색 방법이다. 즉, 계산이나 비교 그리고 탐색 등은 컴퓨터를 사용하여 빠르게 구할 수 있다. 완전 탐색의 장단점장점 : 장점으로는 답을 무조건 찾을 수 있다. 단점 : 답을 찾는데 시간이 걸린다. 따라서, 탐색해야 할 요소들이 많은 경우에는 다른 방법(알고리즘)을 사용하는 것이 현명하다.하지만 탐색해야 할 요소가 적거나 N제한이 작은 경우에는 완전 탐색만큼 정확한 탐색 방법은 없을 것이다. 완전 탐색의 종류 완전 탐색의 종류는 크게 2가지로 나뉜다. 1. for문과 if문을 사용하는 방법(반복문)2. 재귀함수를 사용하는 방법(재귀) 두 가지의 차이는 개인의 취향이나 문제의 유형에 따라 다르지만, 개인..