전체 글 476

[C++] 백준 10798 세로읽기

문제   코드#include using namespace std;char a[5][16];int main(){ for (int i = 0; i > a[i]; } for (int i = 0; i  해설* 배열에서 유효한 문자만 출력할 것 여기에서 다른 부분은 읽어보면서 대충 어떤 느낌으로 풀어야할지 감이 잡힐 것입니다. 여기서 놓치기 쉬운 부분은 바로 if(a[k][i] != '\0') 이 부분인데요. 유효한 데이터가 아닐 때 출력하지 안ㅇㅎ기 위해 '\0'을 해주어야 합니다. 이 조거니 없다면 쓰레기 값이 출력이 될 수 있습니다.  만약 예제가ABCDE123XYZHELLOWORLD이렇게 주어진다면 이것을 세로로 해서 출력을 하라는 문제입니다. 저희가 이것을 각각 char a[0], a[1], a[2]. ..

[c++] 백준 2566번 최댓값

문제코드#include using namespace std;int main(){ int arr[10][10]; for (int i = 1; i > arr[i][j]; } } int max = -1; int arr1 = 0; int arr2 = 0; for (int i = 1; i max) { max = arr[i][j]; arr1 = i; arr2 = j; } } } cout 해설9 x 9 이차원 배열을 입력 받고 가장 큰 수와 위치를 출력하면 된다.저 같은 경우 배열을 만들어서 최댓값을 찾아주었습니다. 인덱스인 0, 0과 달리 1,1부터 시작 유의 * 여기서 제일 놓치기 쉬운 부분은 모든 수가 0이 나올 때 max를 0으로 두면 자리의 값이 구해지지 않으므로 max를..

카테고리 없음 2024.05.22

[c++] 백준 2738번 : 행렬 덧셈

문제  문제코드#include #include #include using namespace std;int arr[101][101], arr2[101][101];int main(){ int N, M; cin >> N >> M; for (int i = 0; i > arr[i][k]; } } for (int i = 0; i > arr2[i][k]; } } for (int i = 0; i  문제설명이중 for문을 통해 2차원 배열의 연산이 가능해집니다. int arr[101][101], arr2[101][101];두 개의 행렬 arr과 arr2를 선언합니다. 최대 크기는 101 x 101이 됩니다. for (int i = 0; i > arr[i][k]; }}첫 번째 행렬 arr의 원소를 이중 for문을..

[C++] 25206번 너의 평점은

문제전공 학점: 학점 * 과목 평점전공 학점 평균: 전공 학점 / 총 학점P 과목은 제외 따라서 전공 학점들을 계산하여 모두 더한 후 총 학점으로 나눠주면 문제를 해결하면 된다.정답코드#include #include #include using namespace std;int main(){ float count = 0; float sum = 0; string grade[9] = { "A+", "A0", "B+", "B0", "C+", "C0", "D+", "D0", "F" }; for(int i =0; i> x >> y >> z; if (z == "P") { continue; } count += y; if (z == "F") { continue; } float num = 5.0; ..

동적 메모리와 스마트 포인터

동적메모리 C++에서 NEW와 DELETE를 이용하여 동적 메모리를 관리합니다. 동적 메모리를 실수 없이 관리하는 것은 생각보다 까다롭습니다. 용도가 다한 동적 객체를 반환하지 않으면 쓰레기(garbage)가 생성되어 메모리 누수(memory leak)가 발생하고, 객체를 가리키는 포인터가 존재하는데 객체를 삭제하면 유효하지 않은 주소를 가지는 포인터가 생길 수 있습니다.  스마트 포인터 c++은 동적 메모리를 쉽고 안전하게 사용할 수 있도록 3종류의 스마트 포인터를 제공합니다. shared_ptr은 다수의 포인터가 하나의 객체를 가리키는 것을 허용합니다.unique_ptr은 가리키는 객체를 온전히 소유한다.weak_ptr은 shared_ptr이 가리키는 객체에 대한 weak reference를 제공한다..

[c++]백준 1076번 저항

문제 링크 : https://www.acmicpc.net/problem/1076코드#include #include #include using namespace std;int main(){ string color[10] = { "black", "brown", "red", "orange", "yellow", "green", "blue", "violet", "grey", "white" }; string n; int mem[3]; long long r = 0; for (int i = 0; i > n; for (int j = 0; j 문제풀이해당 식은 간단하게 문제를 따라서 풀면 나옵니다.* 결과값이 int 범위를 넘어가기 때문에 r을 long long으로 뒀습니다.* pow함수를 써야하기 때문에 #includ..

[C++] 백준 1094번 : 막대기

#include #include #include #define N 8using namespace std;int main(){ int x = 0; cin >> x; string binary = bitset(x).to_string(); int count = 0; for (int i = 0; i 문제 문제코드#include #include #include #define N 8using namespace std;int main(){ int x = 0; cin >> x; string binary = bitset(x).to_string(); int count = 0; for (int i = 0; i  문제풀이해당 문제는 Bitset을 알아야 풀 수 있는 문제입니다. 먼저 처음에 64cm를 가지고 있고 이후 계속 절..

c++ 포인터 설명

int main(){ using namespace std; int array[5] = { 9, 7, 5, 3, 1 }; cout 여기서 알 수 있듯이 array는 포인터입니다. 이렇게 array 하나만 입력하면 주소가 나오며 이는 &array[0] 참조를 이용할 때도 같은 값이 나오는 것을 볼 수 있습니다. cout 이렇게 해주면 array[0]의 값인 9가 나옵니다. char name[] = "JackJack";cout 이 경우에는 J가 나옵니다. 정적 array 또한 포인터라는 것을 알 수 있습니다.

[c++]포인터와 참조 설명

int main(){ int value = 5; int& ref = value; cout 참조는 별명처럼 사용할 수 있습니다. value의 또다른 이름으로 간주하고 사용할 수 있는 것인데요. #include #include using namespace std;int main(){ int value = 5; int* ptr = nullptr; ptr = &value; int& ref = value; cout 포인터의 주소는 value의 주소와 똑같은 것을 볼 수 있습니다. 하지만 포인터 자체의 주소를 치면 다른 것을 볼 수 있는데요. 이것에서 포인트도 변수라는 사실을 알 수 있습니다.  int& ref;이렇게는 불가능합니다. 참조가 별명같은 느낌인데 원래 이름이 없다면 별명도 지을 수 없겠죠? 원래 이..

[따배시 6.12] 동적 할당 배열

int main(){ int length = 5; int array[length]; return 0;}배열은 고정이 되어 있어야 가능한데요.이런 식으로는 불가능합니다. int main(){ const int length = 5; int array[length]; return 0;}이런 식으로 const를 해주면 정상적으로 작동하게 됩니다. 이것을 동적 배열이 가능하도록 바꿔보겠습니다. delete[] array;긴 사이즈  (배열) 등의 new를 제거할 때는 []를 써줘야 합니다. #include #include using namespace std;int main(){ int length; cin >> length; int* array = new int[length]; array[0] = 1; array..