문제풀이(Problem Solving)

코딩테스트에 이용할 만한 지식들 C++,cpp

게임이 더 좋아 2021. 3. 24. 05:38
반응형
728x170

 

C언어의 기본지식

 

C언어를 C++ 환경에 쓰기 위한 조건

<stdio.h>, <cstdio>

 

scanf("DataType", address)

첫 공백까지만 저장된다.(공백있는 곳까지 입력으로 받는다)

%d int %c char
%f float %u unsigned int
%lf double(long float) %lld long long (int)
%o octal(8진수) %x or %X  hexa(16진수)
   
   
   
   
   
   

 

** %d를 받아서 %c로 출력하면 ASCII 코드로 인식해서 문자가 나온다.

 

 

fgets(data, 2000, stdin);

"data에다 2000자를 stdin(키보드입력)을 통해 넣겠다.

 

**scanf 대신 쓰는 이유

fgets( ) 를 사용하면 공백문자가 포함되어있는 문장을 입력받아 저장할 수 있다.

 

 

 

Array에 관해서

 

Range-based for loop

C++ 11 이후에 쓸 수 있는 문법으로

Array의 모든 원소를 처음부터 끝까지 돌린다.

for( DataType "원소" : "arr이름")

아래와 같이 쓸 수 있다.

sum = 0
vector<int> a = {1, 2, 3, 4, 5};
for (int i:a) {
  sum+=i;
  }

printf("%d", sum);
//
15

 

 

 

정렬,sort()

#include <algorithm> 을 해야 쓸 수 있다.

std::sort( a, a+n, comp)

sort할 range를 정하는 것이 a, a+n이다. a부터 a+n 까지 정렬하겠다는 것이다.

comp를 key로 정렬할 수 있다.

예를 들면

아래 compare 함수는 내림차순으로 정렬하는 것이다.

compare(int a, int b){
	return a > b;
}

 

**compare함수를 얼마나 잘 이용하느냐가 관건이다.

항상 오름차순, 내림차순만을 정렬하는 것을 아닐테니.

 

 

 

 

 

 

728x90
반응형
그리드형