안녕하세요. 지칸입니다.
삼성전자 역량 테스트에 자주 등장하는 페어에 대해 소개하겠습니다.
역량 테스트에서 STL이 사용 가능하기 때문에 C++ 사용자분들은 라이브러리를 사용하시면 간편하게 이용할 수 있습니다.
페어는 일종의 구조체 같은 역할을 할 수 있습니다.
1) Pair란?
2) c++ STL 사용 예제
3) vector와의 응용
2021.03.08 - [알고리즘/자료구조] - 스택 이란? (STL 사용법)
2021.03.09 - [알고리즘/자료구조] - 큐 란? (STL 사용법)
2021.03.09 - [알고리즘/자료구조] - 벡터 란? (STL 사용법)
2021.03.12 - [알고리즘/자료구조] - 페어(Pair) 란? (STL 사용법)
1) Pair란?
두 객체를 하나의 객체로 취급할 수 있게 묶어주어 데이터 쌍 역할을 합니다.
#include <utility> 헤더를 입력하여 사용할 수 있습니다.
다만, 데이터 쌍으로만 사용할 수 있어 2가지 객체만 묶을 수 있습니다.
2) c++ STL 사용 예제
예제를 보여드리면 아래와 같습니다.
pair<int,string> p1 = {1, "abc"}로 정의도 가능하며 make_pair(first,second) 함수를 통해서도 정의가 가능합니다.
각 요소는 p1.first, p1.second로 리턴 받을 수 있습니다.
단순히 pair만 보면 어떤 쓸모가 있을지 애매합니다.
3) vector와의 응용
삼성 SW역량테스트 문제를 풀다 보면 vector와 결합하여 쓰는 경우가 생각보다 자주 발생합니다.
단순히 x, y좌표를 pair로 사용할 수도 있고 int, string을 pair로 사용하는 경우도 있습니다.
pair의 쌍으로 정수와 문자열을 묶어서 사용했으며 first를 기준으로 정렬을 사용했습니다.
결과를 보면 first순으로 정렬된 것을 볼 수 있습니다.
구조체를 만들어서 사용하는 것과 크게 다르지는 않습니다.
얼마든지 같은 결과를 만들 수 있지만 우리는 제공되는 라이브러리를 얼마든지 가져다 사용할 수 있고
이에 따라, 휴먼에러 발생 확률을 줄일 수 있어 저는 추천하고 있습니다.
혹시라도 C언어를 사용하고 있어서 라이브러리 사용이 꺼려진다면 무조건 C++로 시험 보세요!
이 글뿐만 아니라 모든 글의 코드를 살펴보더라도 C, C++ 공통된 문법을 사용하고 있습니다.
입출력문만 다르지만 C++에서도 얼마든지 printf, scanf를 사용할 수 있습니다.
'알고리즘 > 자료구조' 카테고리의 다른 글
벡터 <vector> 란? (STL 사용법) (0) | 2021.03.09 |
---|---|
큐 <queue>란? (STL 사용법) (0) | 2021.03.09 |
스택 <stack> 이란? (STL 사용법) (0) | 2021.03.08 |
댓글