누적합은 요소들의 누적된 합의 의미로 어떠한 배열을 기반으로 앞에서부터 요소들의 누적된 합을 저장하여 새로이 배열을 만들어 이를 활용하는 것을 말합니다. 앞에서부터 더하는 prefix sum과 뒤에서부터 더하는 suffix sum 이 있지만, 코딩 테스트에서는 prefix sum만 나오니 prefix sum만 배우면 됩니다. 코드 적용하기 승철이는 뇌를 잃어버렸다. 학교에 갔더니 선생님이 자연수로 이루어진 N개의 카드를 주면서 M개의 질문을 던진다. 그 질문은 나열한 카드 중 A번째부터 B번째까지의 합을 구하는 것이다. 뇌를 잃어버렸기 때문에 승철이는 이 문제를 풀 수 없다. 문제를 풀 수 있는 프로그램을 작성해보자. 입력 > 수의 개수 N, 합을 구해야 하는 횟수 M, 그 이후 N개의 수가 주어진다. ..
c++
length() 함수와 size()는 모두 값의 길이를 구하는 동일한 역할을 합니다. int main() { string str = "Hello"; vector numbers = {1, 2, 3, 4, 5}; cout
cin cin 은 개행문자(띄어쓰기, 엔터) 직전 까지 입력을 받습니다. '나의 작은 개발자' 를 입력하면 띄어쓰기 이전 값인 '나의' 만 출력됩니다. 모두 출력하기 위해서는 `cin >> a >> b >> c;`로 수정하여 각각의 변수에 '나의', '작은', '개발자'를 저장하여 출력합니다. #include using namespace std; string a; int main(){ cin >> a; cout
substr() substr() 함수는 문자열의 Index에서 원하는 길이의 문자열을 잘라서 string 으로 리턴합니다. string substr (size_t pos = 0, size_t len = npos) const; substr(0, 5) 라고 한다면 Index 0에서 시작하는 5개 문자를 잘라 string 으로 리턴합니다. substr(6) 라고 한다면 Index 6에서 문자열의 마지막까지 잘라 string으로 리턴합니다. #include #include using namespace std; int main () { string str = "Hello World, C++"; string newstr1 = str.substr(0, 5); string newstr2 = str.substr(6, 5..
python보다 메모리 관리가 좋은 c++도 종종 시간 초과 문제가 발생합니다. ios_base::sync_with_studio(false); cin_tie(NULL); cout_tie(NULL); 이를 해결하기 위해, 위 코드로 해결하는 사례를 종종 볼 수 있습니다. 이 코드가 어떻게 시간 초과 문제를 해결해 주는지 궁금했습니다. 참고로 아래의 방법은 정공법이 아닌 일종의 편법이므로 통하지 않을 수 있습니다. 1. ios_base::sync_with_studio(false); 헤더를 보면 C++의 표준 입출력은 C와 다르게 구현되어 있음을 알 수 있습니다. C++에서 입출력 작업을 할 때마다 C의 표준 입출력과 동기화 되도록 설정되어 있는데, 이 과정에서 딜레이가 발생합니다. 따라서, ios_base:..