[백준 2751번] C/C++
2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net #include #include #include using namespace std; int main() { int n; vector ivec; cin >> n; for (int i = 0; i > temp; ivec.push_back(temp); } sort(ivec.begin(), ivec.end()); for (int i = 0; i < n; i++) { printf("%d\n", ivec[i])..
2020.10.08
no image
백준 10828번 스택 C/C++
10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 � www.acmicpc.net 라이브러리를 사용한 코드 #include #include #include using namespace std; int main() { int n, value; string oper; stack stk; cin >> n; for (int i = 0; i > oper; if (oper == "push") { cin >> value; stk.push(value); } else if (oper == "pop") { if..
2020.09.14
백준 2609번 C/C++
2609번: 최대공약수와 최소공배수 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. www.acmicpc.net 최대공약수와 최소공배수 문제를 보았을 때, 내가 알던 식으로 소인수분해를 하며 풀면 안될 것 같다는 생각이 들었다. 그래서 찾아보게 된 것이 유클리드 호제법이다. 유클리드 호제법 유클리드 호제법을 통해 최대공약수를 구할 수 있는데, 이것에 대한 설명은 다음과 같다. 숫자가 a와 b가 있고, a를 b로 나눈 나머지를 r이라고 한다. (여기서 a ≥ b이고, r은 0≤ r < b인 정수) a와 b의 최대 공약수를 (a,b)라고 하면, 다음이 성립한다. (a, b) = (b, r) 예시로 1071과 1029에 대한 예시를 위와 같은 ..
2020.08.20
백준 2750번 C/C++
#include #include #include int main() { int n, temp; std::cin >> n; std::vector v(n); for (int i = 0; i > v[i]; } for (int i = 0; i v[j + 1]) { temp = v[j]; v[j] = v[j + 1]; v[j + 1] = temp; } } } for (int i = 0; i < n; i++) { std::cout
2020.08.07
no image
백준 1018번 체스판 다시 칠하기[C/C++]
1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 문제 해결법 해결법1 흰색으로 시작하는 체스판, 검은색으로 시작하는 체스판 배열을 각각 만들어서 두 배열에서 각각 8x8로 자른 판의 count를 세고 count를 비교하여 더 작은쪽을 출력한다. #include #include #include #include using namespace std; int m, n; int result = 64; //250; string board[50]; // == char board[50][50]; string wb[8..
2020.08.06
백준 2160번 C/C++
2160번: 그림 비교 N(2≤N≤50)개의 그림이 있다. 각각의 그림은 5×7의 크기이고, 두 가지 색으로 되어 있다. 이때 두 가지의 색을 각각 ‘X’와 ‘.’으로 표현하기로 하자. 이러한 그림들이 주어졌을 때, 가장 비슷�� www.acmicpc.net #define _CRT_SECURE_NO_WARNINGS #define MAX 987654321 #include int main() { int n; int answer = MAX; int firstPic, secondPic; char pic[5][7][50]; scanf("%d", &n); //scanf 할 때 엔터까지 들어가서 printf할때도 자동엔터가 되는거구나. for (int loop = 0; loop < n; loop++) { for (i..
2020.07.27
no image
백준 10163번 C/C++
10163번: 색종이 평면에 색깔이 서로 다른 직사각형 모양의 색종이 N장이 하나씩 차례로 놓여진다. 이때 색종이가 비스듬하게 놓이는 경우는 없다. 즉, 모든 색종이의 변은 서로 평행하거나, 서로 수직이거나 둘 www.acmicpc.net 문제를 설계하면서 풀어보는 습관을 들여보기로 했다. 문제 N장의 색종이가 주어진 위치에 차례로 놓일 경우, 각 색종이가 보이는 부분의 면적을 구해라. 입력 1. 색종이 개수 (1
2020.07.26
백준 11721번 C/C++
11721번: 열 개씩 끊어 출력하기 첫째 줄에 단어가 주어진다. 단어는 알파벳 소문자와 대문자로만 이루어져 있으며, 길이는 100을 넘지 않는다. 길이가 0인 단어는 주어지지 않는다. www.acmicpc.net 이 문제를 풀수 있는 방식은 이것들이 있다! 방법 1. #define _CRT_SECURE_NO_WARNINGS #include #include int main() { char str[101]; scanf("%s", str); for (int i = 0; i < strlen(str); i++) { printf("%c", str[i]); if ((i+1) % 10 == 0) { printf("\n"); } } return 0; } 방법 2. #define _CRT_SECURE_NO_WARNING..
2020.07.15
백준 10951번
10951번: A+B - 4 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 혹시나 해서 입출력 관련 문제를 풀어봤는데, 정말 못푸는 문제가 나와서 놀랐다. 분명 배웠던 기억이 있었는데, 어느 새인가 기억저편으로 날라갔다..ㅠㅠ... 충격을 뒤로 하고 내용을 정리하자면, 내가 몰랐던 내용은 EOF인데, 이에 대한 간략한 설명이다. EOF(End of File)이란 파일의 끝을 표현하기 위한 '상수'이고, -1의 값을 가진다. 그래서 파일의 끝을 만났을 때, 매크로로 정의된 EOF 값을 리턴한다. scanf는 사실 정수형을 반환해주는 반환함수라고 하는데, 평소에는 포맷 형식 갯수를 반환하는데, 파일 끝에 도달하면 EOF라는 값을 반환해준다고 한다. ..
2020.07.13
백준 1259번
https://www.acmicpc.net/problem/1259 1259번: 팰린드롬수 문제 어떤 단어를 뒤에서부터 읽어도 똑같다면 그 단어를 팰린드롬이라고 한다. 'radar', 'sees'는 팰린드롬이다. 수도 팰린드롬으로 취급할 수 있다. 수의 숫자들을 뒤에서부터 읽어도 같다면 그 �� www.acmicpc.net 앞, 뒤 어디로 읽어도 똑같이 읽히는 수를 팰린드롬수라고 한다. 위 문제를 해결한 나의 방식은 다음과 같다. #include #include #include #define TRUE 1 using namespace std; int main() { int size; int correct = 0; string str; vector front; vector back; while (TRUE) {..
2020.07.13