자료구조 및 알고리즘/C++ 코딩테스트 스킬(6)
-
[C++ in Coding Test] std::tie 사용 예시
std::tie 사용 예시pair max_pos;if(/* condition */){ max_pos = make_pair(next_x, next_y);}tie(curr_x, curr_y) = max_pos; 만약 if( /* condition */)을 충족해서 max_pos가 pair 쌍인 (next_x, next_y)로 묶여지면tie(curr_x, curr_y) = max_pos;를 통해pair로 묶인 next_x와 next_y를 각각 curr_x, curr_y에 대입해준다. 즉, std::tie는 pair로 묶인 변수 max_pos를 curr_x와 curr_y에 대입해준다.
2024.06.06 -
[C++ in Coding Test] char형 2차원 배열을 같은 값으로 초기화 하는 방법
Char형 2차원 배열을 같은 값으로 초기화 하는 방법예시 시나리오 : char형 2차원 배열의 모든 값을 '$'로 초기화1. memset 사용하기memset 함수는 메모리의 내용을 특정 값으로 설정하는 함수로, 2차원 배열 전체를 동일한 값으로 빠르게 초기화할 수 있습니다. 다음은 memset을 사용하는 예시입니다.#include // memset 함수를 사용하기 위해 필요#include int main() { const int rows = 5; const int cols = 10; char array[rows][cols]; // memset을 사용해 array를 '$'로 초기화 memset(array, '$', sizeof(array)); // 결과 확인 for..
2024.06.05 -
[fill] fill 함수로 2차원 배열 초기화
초기화 프로세스 참고int dist[102][102];for(int i=0; i
2024.05.12 -
[memset 함수] memset 함수 주의점
memset 함수 사용 시, 주의점일단 결론부터 말하자면 memset 함수로 초기화 가능한 값은 0, -1, 10101010 01010101과 같이 8bit씩 규칙적으로 잘려지는 수들 뿐인다. 나는 이것도 모르고 memset함수로 배열 전체를 100000을 초기화 시키려다가 낭패를 봤다. memset함수는 1byte씩 초기화 시킨다. 이 때문에 0을 뜻하는 00000000 -1을 뜻하는 11111111은 온전히 초기화가 되는 것이다. 우리가 1을 초기화 한다고 가정한다면 4byte 초기화 된 00000001의 값을 기대할 것이다. 하지만 memset 함수는 01010101로 초기화 시켜버린다. 나는 항상 memset함수가 for문보다 빠르다고 생각해서 사용해 왔었다. 하지만 이 둘의 성능 이슈 차이는 ..
2024.04.26 -
[CPP 코딩테스트 Skill] make_pair에 대해서 알아보기
출처 남기기 예시 코드1 #include #include using namespace std; pair p; int main() { p.first = 1; //pair의 첫번째 인자에 접근 p.second = 2.1; //pair의 두번째 인자에 접근 cout
2024.03.02 -
[C++ 코딩테스트] pair-단일 객체 이동하기 코드에서 사용된 skill
전체 코드 bool InRange(int x, int y) { return 1
2024.03.01