분류 전체보기 441

[c++] 2702번 초6 수학

문제  코드#include #include using namespace std;int gcd(int a, int b){ if (a % b == 0) return b; return gcd(b, a % b);}int lcm(int a, int b){ return a * b / gcd(a, b);}int main(){ int n; cin >> n; int x, y; for (int i = 0; i > x >> y; cout  알고리즘 int gcd(int a, int b){ if (a % b == 0) return b; return gcd(b, a % b);}바로 gcd를 구하는 코드를 알면 쉽게 풀 수 있지만 이에 대한 코드가 모르면 갈피를 잡지 못할 수 있습니다.  유클리드 알고..

[c++] 2903번 중앙 이동 알고리즘

문제https://www.acmicpc.net/problem/2903 코드#include #include using namespace std;int n;int main(){ cin >> n; int dot = 2; while (n--) { dot = dot * 2 - 1; } cout (pow(dot, 2))  설명 주어진 도형을 잘 보면 2 * 점의 개수 -1 순으로 증가를 하는 것을 볼 수 있습니다. 이것을 바탕으로 while문을 걸어준 다음 pow(dot, 2)) 혹은 dot * dot를 출력해주시면 답은 나옵니다. 간단한 문제라 점의 개수가 어떻게 증가하는지 여부만 파악한다면 쉽게 풀 수 있는 문제였습니다. 예제 실행 흐름 만약 n = 3을 입력받으면: 1. 초기 dot = 2. 2. 첫 번째 ..

[C++] 2720번 세탁소 사장 동혁

문제 코드#include using namespace std;int main(){ int n, j; int arr[4] = { 25, 10, 5, 1 }; cin >> n; int a, b, c, d; for (int i = 0; i > j; a = j / arr[0]; j -= a * arr[0]; b = j / arr[1]; j -= b * arr[1]; c = j / arr[2]; j -= c * arr[2]; d = j / arr[3]; j -= d * arr[3]; cout  문제 해설금액을 각각의 동전 단위로 나누어서 최소 동전을 환산하는 것입니다. 이같은 경우 탐욕적 알고리즘을 사용하면 금방 풀 수 있습니다.  일단 저는 그냥 흐름대로 코딩을 작성하여서 제 코드가 최선의 알..

[c++] 백준 알고리즘 1100번 하얀칸

문제 코드#include #include using namespace std;//하얀색 0 검은색 1 int main() { int arr1[8] = { 0, 1, 0, 1, 0, 1, 0, 1 }; int arr2[8] = { 1, 0, 1, 0, 1, 0, 1, 0 }; string n; int count = 0; for (int k = 0; k > n; for (int i = 0; i  문제풀이이중 for문을 써주고 if문으로 처리를 해주었습니다.체스판에서 0을 하얀색으로 1을 검정색으로 해서 배열을 만들어줬으며 총 세로기준으로 홀수일 때 arr1, 짝수일 때 arr2가 나오도록 해주었습니다. 코드는 읽어보면 풀 수 있을 정도의 난이도입니다. 물론 이 풀이말고 다르게 풀이를 해도 되는데요. cha..

카테고리 없음 2024.05.24

[c++] 백준 2563번 색종이

문제코드#include using namespace std;int main(){ int arr[101][101] = { 0, }; // 101x101 크기의 2차원 배열을 0으로 초기화하여 선언 int a, b; int num; cin >> num; // 사각형의 수를 입력받음 int answer = 0; // num개의 사각형을 입력받아 그리기 for (int k = 0; k > a >> b; // 사각형의 시작 좌표 (a, b)를 입력받음 for (int i = a; i  해설처음에는 어떻게 푸는지 조금 시간이 걸렸습니다. 겹치는 부분을 전체 영역에서 빼서 구해야 하나? 생각을 하다가 도저히 모르겠어서 다른 정답 풀이의 푸는 방법을 조금 보고서 ..

[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; ..