본문 바로가기
벡터에서 최소/최대값 인덱스를 가져오려면? min,max 메서드로 최대,최소 값 구하는건 많이 햇으니 max_element나 min_element로 해당 값의 iterator를 가져오고 - begin을 해주면 해당 인덱스를 가져온다 int max_idx = max_element(arr.begin(), arr.end()) - arr.begin(); int min_idx = min_element(arr.begin(), arr.end()) - arr.begin(); 값을 출력하려면 *max_element(arr.begin(), arr.end()) 형태로 값을 가져오거나  int a = arr[max_element(arr.begin(), arr.end()) - arr.begin()]; in.. 2024. 10. 15.
소수점 n 자리에서 반올림, 올림 , 내림 (D2 1984. 중간 평균값 구하기 ) double 형 자료형으로 ceil - 올림floor - 내림 • 반올림round 메서드를 사용하면 소수 첫째 자리에서 반올림한다근데 소수 3째나 4째에서 하고 싶으면?double res = 123.456789;double rounded = round(res * 1000) / 1000.0; 이런 방식으로 하면 소수 3째자리에서 반올림한 걸 구할 수 있다나눌때 / 10 형태가 아닌 / 10.0을 해줘야 되는걸 기억해두자 #include #include #include #include #include using namespace std;int main () { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int test_case; cin >>.. 2024. 10. 12.
우선순위큐 priority_queue, greater> pq(scoville.begin(), scoville.end()); 기본적으로 최대힙, greater을 이용해서 최소힙으로 구성 가능priority_queue> pq(벡터.begin(), 벡터.end()); 내일 코테 제발... 2024. 10. 1.
split 메서드 구현하기 c++에는 split 메서드가 없다#include #include using namespace std;vector split(const string& input, string delimiter) { vector result; auto start = 0; auto end = input.find(delimiter); while (end != string::npos) { result.push_back(input.substr(start, end - start)); start = end + delimiter.size(); end = input.find(delimiter, start); } result.push_back(input.substr(s.. 2024. 8. 27.
조합 구하기 재귀를 이용한 조합 구하기 dfs처럼 방문 체크를 해주면서 k개가 될때까지 계속 재귀를 돌기#include #include using namespace std;int n = 5, k = 3, a[5] = {1, 2, 3, 4, 5};void print(vector b){ for (int i : b) cout &b){ if (b.size() == k) { print(b); return; } for (int i = start + 1; i b; combi(-1, b); return 0;} -- 반복문을 이용해서 구하기n이 2개면 2중, 3개면 3중 for문..n이 많아질수록 비효율적이된다 2024. 8. 27.
순열 구하기 - next_permutation, 재귀 반복문으로 next_permutation 메서드를 이용해서 가능한 순열의 갯수를 구할 수 있다next_permutation메서드 안에 시작점, 끝점을 넣어주고 do - while 문으로 돌면 해당 배열 안의 원소들이 가능한 경우의 수 만큼 배치된다 ! 그냥 while 문의 경우 마지막 순열을 계산한 후 더 이상 계산할 순열이 없으므로 순열내 원소를 출력하지 않고반복문이 종료되버린다 , do-while 문을 사용 ! 오름차순을 기준으로 순열을 만들기때문에 정렬된 상태로 메서드를 호출해야한다int main() { int a[] = {1,2,3}; do{ for (int i : a) { cout  -- 재귀를 이용한 방식using namespace std;int a[.. 2024. 8. 27.
c++ 코딩테스트 풀면서 알게 된 것들 기록 덱에서 특정 원소 인덱스 구하기int idx = find(DQ.begin(), DQ.end(), t) - DQ.begin(); find 함수만으로 하지 않고 -DQ.begin()으로 이터레이서 반복자를 빼 줘야 정확한 특정 원소 인덱스가 나온다 덱이 아닌 벡터, 리스트 등에서도 사용 가능하니 사용방법을 잘 익혀두자  12345를 입력받을때 1 2 3 4 5로 각각 숫자로 받으려면..char로 받고 - '0' 해주면 된다! 2024. 7. 31.