Coding 34

Baekjoon Training / Algorithm-완전탐색 / #3040

#3040 #include #include using namespace std; int main() { vector dwarfs(9); //난쟁이의 모자에 쓰인 정수 int sum = 0;//sum of 9 dwarfs int out1=0, out2=0; //제외할 난쟁이 index 저장 //입력 받기 for (int i = 0;i > dwarfs[i]; sum += dwarfs[i]; } //제외할 난쟁이 찾기 for (int i = 0;i < 8;i++) { for (int j = i + 1;j < 9;j++) { //i,j가 dwarfs의 index를 동일하게 가르키도록 if (sum - dwarfs[i] - dwarfs[j] == 100) { //제외했을 때 100을 ..

Coding/Step By Step 2023.03.12

Vector & Array

Vector & Array vector (class) vector를 생성하면 메모리 heap에 생성되며 동적할당된다. array와의 가장 큰 차이점은 array는 크기가 컴파일할 때 결정되므로 후에 원소를 추가하거나 삭제하는 것이 불가능하며 무조건 스택 메모리를 사용해야하지만, vector는 크기가 동적으로 변한다. 가변 크기의 데이터 컨데이너가 바로 vector이다. vector는 메모리를 재할당하는 데 용이하지만, 포인터를 통한 접근이기 때문에 속도가 느리다. vector를 사용해야할 case - 저장할 데이터의 개수가 정해지지 않은 경우(가변의 경우) - 데이터 접근의 랜덤 엑세스가 필요한 경우 - 중간에 데이터 삽입이나 삭제가 일어나지 않는 경우 배열 기반 컨테이너이기 때문에 push_front(..

Baekjoon Training / Algorithm(math) / #11653 / ing

#11653 #include #include using namespace std; //소수로 나누는 함수 만들기 int division(int i, int d) { //조건문 걸어서 divison 계속 부를 수 있게 하기 return i / d; }//아,,이러면 몫만 나오네,,, 나머지도 구해야하는데,,함수를 또 만들어,,? //근데 굳이 꼭 함수로 해야하나? quotient=num/prime_num[i] 이런식으로 해볼까 int main() { int num; cin >> num; int quotient=0; //몫 int remainder=0; //나머지 vector prime_num(100); //소인수분해에 쓰일 소수들 2,3,5,7,,,, while (quotient != 1 && remain..

Coding/Step By Step 2023.02.10

Baekjoon Training / recursion(재귀) / #25501 / ing

#25501 주어진 코드 이해 (recursion , isPalindrom) int recursion(const char* s, int l, int r) { //글자수가 0 or 1일 경우 (글자수 음수일 경우도 포함되지만 발생 x) if (l >= r) return 1; //시작과 끝의 문자가 다를 경우 else if (s[l] != s[r]) return 0; // (그 외) 시작과 끝의 문자가 같을 경우 끝으로부터 하나 안쪽으로 해서 다시 recursion 호출 else return recursion(s, l + 1, r - 1); } int isPalindrome(const char* s) { return recursion(s, 0, strlen(s) - 1); } code #include #in..

Coding/Step By Step 2023.02.09

Baekjoon Training / 2차원 vector / #2738

#2738 2차원 vector vector > v(10.vector(10,0)); 2차원 vector는 위와 같이 vector에 vector 자료형을 담는 느낌으로 생성한다. 위 코드는 10개의 원소를 가지고 있고, 각 원소는 10개의 원소를 갖고 있고 이 원소들은 0으로 초기화된다. 즉, v[0][0] ~ v[10][10] 모두 0으로 초기화되었음을 의미한다 연속된 정수 받기 int n, m; scanf("%d %d", &n, &m); scanf로 공백을 기준으로 연속으로 정수를 입력 받을 수 있다. cin으로 연속된 정수를 받기 위해서는 enter를 통해서 받거나 for문을 통해 연속적으로 값을 받아야한다. #define _CRT_SECURE_NO_WARNINGS #in..

Coding/Step By Step 2023.02.07