[C++ 코딩테스트] pair-단일 객체 이동하기 코드에서 사용된 skill
2024. 3. 1. 21:11ㆍ자료구조 및 알고리즘/C++ 코딩테스트 스킬
728x90
전체 코드
bool InRange(int x, int y)
{
return 1<=x && x<=n && 1<=y && y<=n;
}
void Simulate() {
int dx[4] = { -1, 1, 0, 0};
int dy[4] = {0, 0, -1, 1};
int max_num =0;
pair<int, int> max_pos;
for(int i=0; i<4; i++)
{
int next_x = curr_x + dx[i];
int next_y = curr_y + dy[i];
if(InRange(next_x, next_y) && a[next_x][next_y] > max_num)
{
max_num = a[next_x][next_y];
max_pos = make_pair(next_x, next_y);
}
}
tie(curr_x, curr_y) = max_pos;
}
while(t--)
{
Simulate ();
}
#1
pair<int, int> max_pos;
가장 기본적인 STL 컨테이너라고 할 수 있는 pair와 vector에 대해서 먼저 알아보도록 하겠습니다.
이해하기 쉽도록 제 나름대로 정한 정의와 문제를 풀 때의 쓰임새를 알아보고 난 후, 멤버 함수들과 예제를 통해 사용법을 익혀보도록 하겠습니다.
1. pair
1) 정의[각주:1]
이름이 'first', 'second'인 두 개의 변수를 저장할 수 있는 struct
2) 용도[각주:2]
① 이차원 배열의 인덱스
② 이차원 좌표평면에서의 좌표
③ 정점 번호와 해당 정점 번호까지의 최단거리를 묶어서 저장해야 되는 경우
3) 사용법
pair를 사용하기 위해서는 <utility>를 include 해야 합니다.
pair는 다른 컨테이너들에 비해 간단한 구조이기 때문에 멤버 함수가 적습니다. 따라서, 바로 예제를 통해 pair의 기본적인 사용법을 익혀보도록 하겠습니다.
// pair 선언
pair<int, int> p;
pair<char, double> p;
//pair 생성
int a=1, b=2;
pair<int, int> p = make_pair(a,b);
pair<int, int> p = make_pair(1,2);
//pair의 멤버 변수에 접근
int valA = p.first;
int valB = p.second;
출처) pair 관련 링크 https://sarah950716.tistory.com/4
[C++/STL]pair, vector
가장 기본적인 STL 컨테이너라고 할 수 있는 pair와 vector에 대해서 먼저 알아보도록 하겠습니다. 이해하기 쉽도록 제 나름대로 정한 정의와 문제를 풀 때의 쓰임새를 알아보고 난 후, 멤버 함수들
sarah950716.tistory.com
728x90
'자료구조 및 알고리즘 > C++ 코딩테스트 스킬' 카테고리의 다른 글
[C++ in Coding Test] std::tie 사용 예시 (0) | 2024.06.06 |
---|---|
[C++ in Coding Test] char형 2차원 배열을 같은 값으로 초기화 하는 방법 (0) | 2024.06.05 |
[fill] fill 함수로 2차원 배열 초기화 (0) | 2024.05.12 |
[memset 함수] memset 함수 주의점 (0) | 2024.04.26 |
[CPP 코딩테스트 Skill] make_pair에 대해서 알아보기 (0) | 2024.03.02 |