💻 OnlineJudge/Baekjoon
[백준 / BOJ] C++ 9012 괄호
백준 - 단계별로 풀어보기 [9012] https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 풀이 제가 풀이한 방법 1. '(' 여는괄호와 ')' 닫는괄호의 갯수가 동일해야합니다. 2. 닫는괄호가 나올경우, stack 내부가 비어있으면 안됩니다. 3. No, Yes 출력 시 result 결과값으로 올바른 문자열인지 확인합니다. Code #include #include #include using namespace std;..
[백준 / BOJ] C++ 10773 제로
백준 - 단계별로 풀어보기[10773] https://www.acmicpc.net/problem/10773 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net 풀이 c++ 에서 제공하는 lib, stack으로 간단하게 해결 가능합니다. Code #include #include using namespace std; int main() { int k, num; int sum = 0; cin >> k; stack _stack; for (int i = 0; i < k; i++) { cin..
[백준 / BOJ] C++ 24416 피보나치 수열 1
백준 - 단계별로 풀어보기 [24416] https://www.acmicpc.net/problem/24416 24416번: 알고리즘 수업 - 피보나치 수 1 오늘도 서준이는 동적 프로그래밍 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자. 오늘은 n의 피보나치 수를 재귀호출과 동적 프로그래밍 www.acmicpc.net 풀이 재귀함수를 사용하는 간단한 문제입니다. 문제에 나온 #코드1, #코드2를 참조해서 구현합니다. Code #include using namespace std; int cnt = 0; int f[41] = { 0, }; int fib(int n) { if (n == 1 || n == 2) return 1; else return (fib(n ..
[백준 / BOJ] C++ 2580 스도쿠
백준 - 단계별로 풀어보기 [2580] https://www.acmicpc.net/problem/2580 2580번: 스도쿠 스도쿠는 18세기 스위스 수학자가 만든 '라틴 사각형'이랑 퍼즐에서 유래한 것으로 현재 많은 인기를 누리고 있다. 이 게임은 아래 그림과 같이 가로, 세로 각각 9개씩 총 81개의 작은 칸으로 이루 www.acmicpc.net 풀이 가로, 세로 줄에는 1부터 9까지의 숫자가 한번씩만 나타나야합니다. 3x3 정사각형 안에서도 1부터 9까지의 숫자가 한번만 나타나야한다. 스도쿠 판의 좌표 (x,y) 에 넣는 숫자 num은 값의 존재유무판단을 우선적으로 한 이후, 위의 조건에 해당하지 않을 경우에만 값을 넣어주는 식으로 진행했습니다. sudoku[9][9]의 끝 좌표까지 탐색한 경우 결..
[백준 / BOJ] C++ 3053 택시 기하학
백준 - 단계별로 풀어보기 [3053] https://www.acmicpc.net/problem/3053 3053번: 택시 기하학 첫째 줄에는 유클리드 기하학에서 반지름이 R인 원의 넓이를, 둘째 줄에는 택시 기하학에서 반지름이 R인 원의 넓이를 출력한다. 정답과의 오차는 0.0001까지 허용한다. www.acmicpc.net 풀이 유클리드 기하학은 기본적으로 알고 있는 원 넓이 공식이다 . (2πr) 그러나 택시 기하학에서는 꼭지점을 연결하면 마름모 모양이 된다. (2r^2) Code #include using namespace std; #define Pi 3.14159265358979 int main() { double r; cin >> r; cout
[백준 / BOJ] C++ 2477 참외밭
백준 - 단계별로 풀어보기 [2477] https://www.acmicpc.net/problem/2477 2477번: 참외밭 첫 번째 줄에 1m2의 넓이에 자라는 참외의 개수를 나타내는 양의 정수 K (1 ≤ K ≤ 20)가 주어진다. 참외밭을 나타내는 육각형의 임의의 한 꼭짓점에서 출발하여 반시계방향으로 둘레를 돌면서 지 www.acmicpc.net 풀이 어떻게 풀어야할까 고민을 많이 한 문제.. 큰 사각형에서 작은 사각형의 넓이를 빼는 식으로 문제 해결을 해 보았습니다. 작은 사각형을 구하는 방법은 연속되는 두개의 방향 짝에 끼인 두개의 방향의 길이 곱이 작은사각형 넓이입니다. 그리고 연속되는 두개의 방향짝을 제외한 나머지 길이 두개의 곱이 큰 사각형 넓이입니다. 즉, 큰 사각형의 넓이는 방향이 한번..
[백준 / BOJ] C++ 4153 직각삼각형
백준 - 단계별로 풀어보기 [4153] https://www.acmicpc.net/problem/4153 1085번: 직사각형에서 탈출 한수는 지금 (x, y)에 있다. 직사각형은 각 변이 좌표축에 평행하고, 왼쪽 아래 꼭짓점은 (0, 0), 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램 www.acmicpc.net 풀이 직각삼각형은 피타고라스의 정리를 사용하면 알 수가 있다. c^2 = a^2 + b^2 으로 값이 맞을 경우 right, 틀릴경우 wrong을 쓰면된다. Code #include #include using namespace std; int main() { int arr[3]; while (1) { cin >> arr[0] >> arr[..
[백준 / BOJ] C++ 3009 네번째 점
백준 - 단계별로 풀어보기 [3009] https://www.acmicpc.net/problem/3009 풀이 점이 각각 (5,5) , (5,7) , (7,5) 일 경우, 직사각형이 되려면 (7,7)이 되어야합니다. 즉 X와 Y의 좌표가 짝을 이루어 출력이 되어야한다. x축, y축의 값의 종류가 1개씩만 나온 값을 찾으면됩니다. Code #include using namespace std; int main() { int x_arr[3]; int y_arr[3]; int x, y; for (int i = 0; i > x_arr[i] >> y_arr[i]; } // X if (x_arr[0] == x_arr[1]) x = x_arr[2]; else if (x_arr[0] == ..