인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

창신동 장첸님의 프로필 이미지

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

라이브러리 질문

작성

·

887

0

알고리즘 교안 p.9에서

#include<bits/stdc++.h> 를 지원하지 않는 코딩테스트 환경이 있다고 하셨습니다.

예를 들어 삼성전자 코딩테스트에서 

pair 나 tuple을 추가하기 위해서 

#include<utitlity>

#include<tuple> 

을 직접명시할 수 밖에 없을 텐데 이는 어쩔 수 없이 암기해야하는 부분으로 받아드려야 되는지 궁금합니다.

 

또한, 위에서 언급한 의도와 같이 p.9에서 선생님께서 전달하려는 내용의 핵심이 라이브러리에 속한 함수들을 암기하는 것 뿐만 아니라 #include<OOO>에 적을 라이브러리 명도 암기하라는 것인지 궁금합니다.

답변 1

0

큰돌님의 프로필 이미지
큰돌
지식공유자

사실 암기할 필요가 없습니다. 

어떤 식으로 주어지냐면 

pair를 써야 할 "문제"라면 pair를 삼성에서 제공해줍니다. 

#include<utitlity>

#include<tuple> 

이런식으로 말이죠. 

다만 불안할경우 외우라는 말씀을 드린겁니다. pair를 쓰고 싶은데 include를 몰라 막히면 초조할 수도 있으니까요. 

 

삼성코테와 유사한 환경은 다음 링크에서 볼 수 있습니다. 

 - https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AYJW63G6lQ4DFASv&categoryId=AYJW63G6lQ4DFASv&categoryType=CODE&problemTitle=&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=&pageSize=10&pageIndex=1

이 사이트에서 문제를 푸는게 삼성코테와 유사한 환경에서 풀 수 있다 라고 볼 수 있는데요. 

 

이 사이트의 문제 중 하나는 이렇게 나옵니다. 즉, iostream을 주고 이것만으로도 풀 수 있는 문제죠. 

/////////////////////////////////////////////////////////////////////////////////////////////
// 기본 제공코드는 임의 수정해도 관계 없습니다. 단, 입출력 포맷 주의
// 아래 표준 입출력 예제 필요시 참고하세요.
// 표준 입력 예제
// int a;
// float b, c;
// double d, e, f;
// char g;
// char var[256];
// long long AB;
// cin >> a;                            // int 변수 1개 입력받는 예제
// cin >> b >> c;                       // float 변수 2개 입력받는 예제 
// cin >> d >> e >> f;                  // double 변수 3개 입력받는 예제
// cin >> g;                            // char 변수 1개 입력받는 예제
// cin >> var;                          // 문자열 1개 입력받는 예제
// cin >> AB;                           // long long 변수 1개 입력받는 예제
/////////////////////////////////////////////////////////////////////////////////////////////
// 표준 출력 예제
// int a = 0;                            
// float b = 1.0, c = 2.0;               
// double d = 3.0, e = 0.0; f = 1.0;
// char g = 'b';
// char var[256] = "ABCDEFG";
// long long AB = 12345678901234567L;
// cout << a;                           // int 변수 1개 출력하는 예제
// cout << b << " " << c;               // float 변수 2개 출력하는 예제
// cout << d << " " << e << " " << f;   // double 변수 3개 출력하는 예제
// cout << g;                           // char 변수 1개 출력하는 예제
// cout << var;                         // 문자열 1개 출력하는 예제
// cout << AB;                          // long long 변수 1개 출력하는 예제
/////////////////////////////////////////////////////////////////////////////////////////////

#include<iostream>

using namespace std;

int main(int argc, char** argv)
{
	int test_case;
	int T;
	/*
	   아래의 freopen 함수는 input.txt 를 read only 형식으로 연 후,
	   앞으로 표준 입력(키보드) 대신 input.txt 파일로부터 읽어오겠다는 의미의 코드입니다.
	   //여러분이 작성한 코드를 테스트 할 때, 편의를 위해서 input.txt에 입력을 저장한 후,
	   freopen 함수를 이용하면 이후 cin 을 수행할 때 표준 입력 대신 파일로부터 입력을 받아올 수 있습니다.
	   따라서 테스트를 수행할 때에는 아래 주석을 지우고 이 함수를 사용하셔도 좋습니다.
	   freopen 함수를 사용하기 위해서는 #include <cstdio>, 혹은 #include <stdio.h> 가 필요합니다.
	   단, 채점을 위해 코드를 제출하실 때에는 반드시 freopen 함수를 지우거나 주석 처리 하셔야 합니다.
	*/
	//freopen("input.txt", "r", stdin);
	cin>>T;
	/*
	   여러 개의 테스트 케이스가 주어지므로, 각각을 처리합니다.
	*/
	for(test_case = 1; test_case <= T; ++test_case)
	{

		/////////////////////////////////////////////////////////////////////////////////////////////
		/*
			 이 부분에 여러분의 알고리즘 구현이 들어갑니다.
		 */
		/////////////////////////////////////////////////////////////////////////////////////////////


	}
	return 0;//정상종료시 반드시 0을 리턴해야합니다.
}
창신동 장첸님의 프로필 이미지

아하 코드에 기본값으로 #include< > 가 작성되있군요....

감사합니다!