Programming 기초/C++
-
c++ 백준 1676번 팩토리얼의 0의 개수Programming 기초/C++ 2024. 8. 20. 11:16
팩토리얼은 오버플로우가 생기기 쉽다. n이 500 까지이므로 팩토리얼을 계산한 후에 10으로 나누어 0의 개수를 세는 방법은 적절치 않다.대체 방법으로 모든 수를 소인수 분해해서 5의 거듭제곱이 각각 몇 개 있는지 파악하는 방식이 있다.#include using namespace std;int countZeros(int n){ int count = 0; for (int i = 5; n / i > 0; i *= 5) { count += n / i; } return count;}int main(int argc, char **argv){ int N; cin >> N; int cnt = countZeros(N); cout 10!을 생각해보자.10*..
-
STL 컨테이너Programming 기초/C++ 2024. 8. 11. 15:41
* 컨테이너컨테이너는 같은 타입을 저장, 관리할 목적으로 만들어진 클래스(총 7가지 컨테이너 제공) - 표준 시퀀스 컨테이너(standard sequence container): 컨테이너 원소가 자신만의 삽입 위치(순서)를 가지는 컨테이너vector, deque, list: 선형적 - 표준 연관 컨테이너(standard associative container): 저장 원소가 삽입 순서와 다르게 특정 정렬 기준에 의해 자동 정렬되는 컨테이너set, multiset, map, multimap: 비선형적 * 데이터를 하나의 연속한 메모리 단위로 저장하느냐에 따라 컨테이너를 분류 - 배열 기반 컨테이너(arrray-based container): 데이터 여러 개가 하나의 메모리 단위에 저장vector, deq..
-
[c++] vscode에서 c++ 설치 the prelaunchtask c/c++: gcc build active file terminated with exit code -1 에러 해결Programming 기초/C++ 2024. 7. 19. 15:50
https://www.youtube.com/watch?v=UqCZda8DLGc&t=9792s 위 영상을 참고했다. https://code.visualstudio.com/docs/cpp/config-mingw먼저 g++을 설치해야하는데, window에 경우 MinGW를 통해 설치한다. https://www.msys2.org/사이트에서 아래 설치파일을 다운받아서 실행하고 기본 설치위치 그대로 쭉 설치해준다. 설치가 완료되면 MSYS2 터미널 창이 뜬다. pacman -S --needed base-devel mingw-w64-ucrt-x86_64-toolchain 명령어 입력 후 default all 머시기 뜨면 enter 누르고y/n 뜨면 y 눌러서 쭉 진행해준다. 마지막에 g++ 제대로 설치되었는지, 버전..
-
[c++] 참조자형식 "&"Programming 기초/C++ 2024. 7. 19. 10:47
* "&"는 참조자 형식(reference )이다. 형식 &이름 = 원본;의 형태로 쓴다.- 선언과 동시에 반드시 초기화해줘야 한다.#includeusing namespace std;void TestFunc(int &rParam){ rParam=100;}int main(int argc, char **argv){ int nData = 10; int &ref = nData; ref = 20; cout 주소를 알려주는 역할이라고 보면 될 듯 하다. 함수에서 주소로 받고자 할 때 많이 사용되고, 아래와 같이 for 문에서도 활용된다. #includeusing namespace std;int main(int argc, char **argv){ int aList[5] = {..
-
[C++] cin.ignore와 버퍼에 대한 이해Programming 기초/C++ 2024. 6. 28. 19:31
cin cin은 character input의 약자로, 버퍼의 값을 읽어온다. 만약 버퍼에 읽어올 값이 없으면 표준입력스트림으로부터 입력을 받아와 버퍼에 저장하고나서 버퍼의 값을 읽어온다.입력을 받는다는 것이 아닌 버퍼를 먼저 읽으려고 한다는 관점이 중요하다.(버퍼는 자료구조 queue와 유사하다. 선입선출로 작동한다.) 'cin >>' 은 공백(스페이스, 탭, 줄바꿈)문자를 기준으로 끊어서 읽어오고, 공백문자는 무시한다.#include using namespace std;int main() { char name[100]; cout > name; cout 0. 버퍼에 다음과 같이 저장된다. [ j ] [ o ] [ h ] [ n ] [ ' ' ] [ n ] [ a ] [ n ] [ a ]..