[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