CS 공부/알고리즘

C++ 알고리즘 문제풀이하며 자주 쓰이는 라이브러리, 함수 정리

비정기적으로 업데이트 합니다.

 

#include <algorithm>

unique(시작 주소, 종료 주소); - 중복제거

return 값 : 중복 제거하고 난 후의 끝 주소

주의 사항 : sort후 사용해야 올바르게 수행이 가능함!!
참고 자료

응용 : erase(unique(v.begin(), v.end()) , v.end());
--> erase함수를 이용하여 중복 된 항목들을 모두 지워 줄 수가 있다.

find(시작 주소, 종료 주소,값); - 값 찾기

return 값 :값이 있다면, 찾고자 하는 값의 주소 /값이 없다면, 종료 주소

주의 사항 : #include<string>의 find()와는 다르다.
참고 자료

 

min_element(시작 주소, 종료 주소);     /     max_element(시작 주소, 종료 주소);
: 최소 / 최대값 찾기

return 값 : 가장 작거나/큰 값의 주소

주의 사항 : return값이 주소값이므로 값을 참조하고 싶다면 '*' 사용!!
참고 자료

 

reverse(시작 주소, 종료 주소); - 객체 순서 거꾸로 하기.

return 값 : 없음

참고 자료

 

transform( 시작 주소, 종료 주소, 시작 주소2, 규칙[함수]); - 변환시키기

return 값 : 가장 작거나/큰 값의 주소

시작 주소~ 종료 주소까지의 객체들을 규칙에 맞게 시작 주소2 부터 변환 시켜 저장하는 함수

  • 응용 :transform(str.begin(), str.end(), str.begin(), ::toupper);
    --> str이라는 이름의 문자열을 대문자로 바꾸는 함수


참고 자료

 

prev_permutation(시작 주소 , 종료 주소); - 이전순열 구하기
next_permutation(시작 주소 , 종료 주소); - 다음순열 구하기

return 값 : 이전 / 다음 순열이 있다면, true, / 없다면, false

응용 : vector<int> v; v.sort(v.begin(), v.end()); do{ }while(next_permutation(v.begin(), v.end()));
--> 다음 순열이 없다면 false return하는 것을 이용하여 do~while문을 통하여 모든 경우의 수를 뽑아 볼 수 있다.

주의 사항 : next_permutation을 사용한다면 less로 prev_permutation을 사용한다면 greater로 정렬 후 사용해야 모든 경우의 수를 접근 할 수 있다.

참고 자료

 



#include <bitest>

2진법을 이용한 문제에 유용하게 사용 할 수 있는 라이브러리이다 함수는 많이 있으나, 주로 두가지를 자주 사용한다.
- to_string() : bitset 변수를 string으로 변환하여 return
- count() : 1의 개수 return
참고 자료



#include <numeric>

accumulate(시작 주소, 종료 주소, 초기 값); - 배열의 모든 합 구하기.

return 값 : 이전 / 다음 순열이 있다면, true, / 없다면, false

주의 사항 : 초기 값은 0 : int / OLL : long long
참고 자료



 

#include <cstdlib>

abs(int num); - 절댓값 구하기.

return 값 : num의 절댓 값 ( int )

주의 사항 : float, double 형은 다른 라이브러리에 선언이 되어 있습니다.
참고 자료



 

#include <cmath>

abs(double num); - 절댓값

return 값 : num의 절댓 값 ( double )


주의 사항 : int, long int 형은 다른 라이브러리에 선언이 되어 있다.

참고 자료

 

pow(double num, double n); - 제곱

return 값 : num의 n제곱 값

 주의 사항 : pow(10,2); 과 같이 int형을 넣어도 자동 형변환으로 변환되어 들어간다.
참고 자료

 

sqrt(double num); - 루트값

return 값 : num의 루트 값 (double)

주의 사항 : sqrt(4); 와 같이 int형을 넣어도 자동 형변환으로 변환되어 들어간다.
참고 자료

 

#include <cctype>

주로 문자의 중류를 판단할때 많이 쓰고, is- , to- 의 형식이다.
- isalpha(알파벳이면 1), isdigit(숫자면 1)
- islower(소문자면 1), is upper(대문자면 1)
- toupper(대문자로 바꿔주는 함수) , tolower(소문자로 바꿔주는 함수)

참고 자료

 

 

참고자료

https://velog.io/@gowoonsori/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EC%97%90%EC%9C%A0%EC%9A%A9%ED%95%9Ccpp%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%ACor%ED%95%A8%EC%88%98