본문 바로가기
코딩테스트

[C++] 코딩테스트 공식

by KUROMI98 2023. 9. 14.

사칙연산 : 곱셈 (*), 덧셈 (+), 뺄셈 (-),  몫 구하기 (int / int), 나머지 구하기 (int % int)


문자열일때는 string, 한 글자일때는 char.


a의 b 제곱: 

#include <cmath>
jegop = pow(a, b) ;

n의 루트는 x

#include <cmath>
int x = sqrt(n);



배열의 선언: 

#include <vector> 
vector<int> 배열;

 



수의 올림: 

#include <cmath> // 올림을 위해 cmath 헤더를 포함해야 합니다.
double 저장할변수 = ceil(올릴숫자);

int를 double로 형변환 하기: double double로저장할값 = intToDouble(int로저장된값);
문자열을 long long으로 형변환 하기: long long 롱롱값 = stoll (문자열);

문자열을 int로 형변환하기: int 숫자 = stoi (숫자);

 



배열의 길이: int 배열의길이 = 배열.size()



배열에 요소를 추가/삭제

#include <vector>  // 헤더 추가
배열.insert(배열.begin(), 추가할요소); // 앞에 요소 추가
배열.pop_back(); // 뒤에서 요소 제거  
배열.push_back(추가할요소); // 뒤에 요소 추가
배열.erase(배열.begin() + index); // index 요소 삭제

배열.insert(배열.begin(), 배열.back()); // 맨 뒤의 요소를 맨 앞에 넣기
배열.pop_back(); // 맨 뒤의 요소를 삭제하기
배열.push_back(배열[0]); // 맨 앞의 요소를 맨 뒤에 넣기
배열.erase(배열.begin()); // 맨 앞의 요소를 삭제하기


배열의 원소들의 총합

double sum = 0; 
for(int i=0; i<numbers.size(); i++) { 
  sum += numbers[i];  
}

배열을 정렬

#include <algorithm> // 이거 먼저 헤더에 놓고
std::sort(배열.begin(), 배열.end());

그냥 sort(배열.begin(), 배열.end()); 해도 됨

-

 

-
문자열의 정렬

#include <string>
#include <algorithm>
std::sort(문자열.begin(), 문자열.end());

-

문자열의 내림차순 정렬

#include <algorithm>
#include <functional> 
sort(문자열.begin(), 문자열.end(), greater<char>());

배열 거꾸로 뒤집기

#include <algorithm> // std::reverse 함수를 사용하기 위한 헤더
std::reverse(배열.begin(), 배열.end());

문자열 거꾸로 뒤집기

#include <algorithm>
std::reverse(배열.begin(), 배열.end());

배열 잘라내기(시작인덱스부터 끝인덱스까지)

#include <vector>
std::vector<int> 새로운배열(잘라낼배열.begin() + 시작인덱스, 잘라낼배열.begin() + 끝낼인덱스 + 1);

-

#include <string>
#include <vector>

using namespace std;

vector<vector<int>> solution(vector<int> num_list, int n) {
    vector<vector<int>> answer;
    for(int i = 0; i<num_list.size(); i+=n) {
        vector<int> slice(num_list.begin() + i, num_list.begin() + i + n );
        answer.push_back(slice);}
    return answer;
}

문자열 잘라내기

std::string 새로운문자열 = 잘라낼문자열.substr(시작할인덱스, 추출할개수);

문자열의 글자 삭제

문자열의 앞에서부터 글자 삭제하기:
#include <string>
문자열 = 문자열.substr(1); // substr 안에 있는 글자는 삭제할 글자의 개수

문자열의 글자 삭제하기: 
#include <string>
문자열 = 문자열.substr(a, b) // 문자열의 a라는 인덱스부터 b개 삭제하기

문자열 내에서 문자열 찾기:

int 찾을문자의인덱스 = 문자열.find(찾을문자);

-
배열 내에서 원소 찾기:

#include <algorithm> 

int 인덱스 = find(배열.begin(), 배열.end(), 찾을값) - 배열.begin();

배열 return 하기: return {money/5500, money%5500};  [ ] 이거 쓰면 안되고 { } 이렇게 써야 함



수의 올림:

#include <string>
#include <vector>

using namespace std;

int solution(int slice, int n) {
    int answer = n/slice;
    if(n%slice!=0){
        answer=answer+1;
    }
    return answer;
}

배열의 최댓값, 최솟값:

#include <algorithm> 
#include <vector>
int max = *std::max_element(배열.begin(), 배열.end());
int min = *std::min_element(배열.begin(), 배열.end());


그냥 *max_element(배열.begin(), 배열.end()); 이렇게만 써도 됨


숫자를 문자열로 바꾸는 법:

#include <string>
using namespace std; 
    string 문자열 = to_string(숫자); 
}

-
문자열을 숫자로 바꾸는 법:
 int num = std::stoi(str); // 문자열을 정수로 변환 라고 하는데 잘 모르겠다. string to integer 라는 뜻이라고 한다.
stoi(문자열(1, 문자)) = 문자를 숫자로 바꾸는 거.

for (char c : 문자열) {
        배열.push_back(stoi(string(1, c)));
    }



-
문자열을 숫자로 바꾸고 총합을 구하는 법:

int 총합 = 0;
for (char c : 문자열) { // 문자열 내부의 모든 문자에 대해
        if (isdigit(c)) { // 문자를 숫자로 바꾸자.
            int digit = c - '0'; // 문자를 정수로 변환
            총합 += digit; // 숫자 더하기
        }
    }

-
문자열을 숫자로 바꾸고 배열 속에 넣는 법:

#include <string>
#include <vector>

using namespace std;

vector<int> solution(string 문자열) {
    vector<int> 배열; 
    for (char c : 문자열) { // 문자열 내부의 모든 문자에 대해
        if (isdigit(c)) { // 문자를 숫자로 바꾸자.
            int digit = c - '0'; // 문자를 정수로 변환
            배열.push_back(digit);
        }
    }

    return 배열;
}

-
문자열을 하나하나 잘라서 배열 속에 넣는 법:

#include <string>
#include <vector>
#include <algorithm>

std::vector<char> 배열;
 for (char c : 문자열) {
        배열.push_back(c);
    }

-
배열을 합쳐서 문자열로 만드는 법: 

#include <string>
#include <vector>
#include <algorithm>

string 문자열 = "";
for (char c : 배열) {
        문자열 += c;
    }

-
숫자 배열을 합쳐서 문자열로 만드는 법:

#include <string>
#include <vector>

using namespace std;

    string 문자열 = "";

    // array의 내부 원소 중 모든 숫자에 대하여, 문자열의 형태로 바꿔서 str이라는 문자열에 넣는다.
    for(int num : 배열){
        문자열 += to_string(num);
    }

-

숫자의 자릿수 다 더하기:

#include <string>
#include <algorithm>

using namespace std;

int solution(int n){
    string str = to_string(n); 
    int sum = 0;
    for (char c : str) { 
        if (isdigit(c)) { 
            int digit = c - '0';
            sum += digit; 
        }
    }
    return sum;
}



배열의 맨 마지막 원소: 배열.back()

-
문자열을 전부 소문자로 바꾸는 법:

#include <string>
#include <algorithm>

std::transform(문자열.begin(), 문자열.end(), 문자열.begin(), ::tolower);

-
하나의 문자를 소문자/대문자로 바꾸는 법:

#include <string> 
#include <algorithm>

using namespace std;

my_string[i] = tolower(my_string[i]);
my_string[i] = toupper(my_string[i]);

-
배열 내에서 가장 큰 수 구하는 법:

#include <algorithm> 
int 최댓값 = *max_element(배열.begin(), 배열.end());

-
이진수를 십진수로 바꾸는 법: 

int 십진수 = std::stoi(이진수, 0, 2); // 이진수를 십진수로 변환

-
문자열 내 중복 제거:

#include <string>
#include <vector>

using namespace std;

string solution(string 중복이있는문자열) {
    string 중복제거될문자열 = "";
    for (char c : 중복이있는문자열) {
        if (중복제거될문자열.find(c) == string::npos) {
            중복제거될문자열 += c;
        }
    }
    return 중복제거될문자열;
}

'코딩테스트' 카테고리의 다른 글

[Python] 코딩테스트 공식  (0) 2023.05.25
[JavaScript] 코딩테스트 공식  (0) 2023.05.09
알고리즘 테스트 :: 지뢰탐지  (0) 2023.02.02
백준 5585  (1) 2023.02.01
백준 8958  (0) 2023.02.01

댓글