PS (Program Solving)/BOJ (백준)(343)
-
[백준 BOJ] 5532번 방학 숙제 (C++/cpp)
문제 설명 https://www.acmicpc.net/problem/5532 5532번: 방학 숙제 한 줄에 하나씩 총 다섯 줄에 걸쳐 L, A, B, C, D가 주어진다. (2 ≤ L ≤ 40, 1 ≤ A, B ≤ 1000, 1 ≤ C, D ≤ 100) 항상 방학 숙제를 방학 기간내에 다 할 수 있는 경우만 입력으로 주어진다. www.acmicpc.net 접근 방법 - 사칙연산에 대한 기본 문제 백준의 5532번 문제는 사칙연산을 이용하여 해결할 수 있는 간단한 문제이다. 해당 문제는, 상근이가 방학기간 동안 주어진 방학 숙제를 다 하고 놀 수 있는 최댓값을 구하여 출력해야 하는 문제이다. 문제의 설명을 보면, 방학 숙제를 하는 기간을 최솟값으로 잡고 연산해야 한다. 입력값으로는 방학 숙제의 양과 상근..
2022.10.31 -
[백준 BOJ] 2161번 카드1 (C++/cpp)
문제 설명 https://www.acmicpc.net/problem/2161 2161번: 카드1 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net 접근 방법 - 큐를 이용한 연산 문제 백준의 2161번 문제는 큐를 이용한 연산을 통해 해결해야 하는 문제이다. 해당 문제는, 특정 규칙에 따라 카드 위치를 변경하면서 버려지는 카드 번호를 순차적으로 출력해야 하는 문제이다. 이때 카드 위치를 변경하는 규칙은 아래와 같다. 1. 제일 위에 있는 카드를 버린다. 2. 그다음, 위에 있는 카드를 제일 아래로 옮긴다. (이 순서를 반복한다.)..
2022.10.27 -
[백준 BOJ] 1312번 소수 (C++/cpp)
문제 설명 https://www.acmicpc.net/problem/1312. 1312번: 소수 피제수(분자) A와 제수(분모) B가 있다. 두 수를 나누었을 때, 소숫점 아래 N번째 자리수를 구하려고 한다. 예를 들어, A=3, B=4, N=1이라면, A÷B=0.75 이므로 출력 값은 7이 된다. www.acmicpc.net 접근 방법 - 수학적 사고력을 필요로 하는 연산 문제 백준의 1312번 문제는 수학적 사고력을 이용하여 해결해야 하는 응용문제이다. 해당 문제는, 두 숫자에 대하여 나눗셈을 수행했을 시 특정 소수점에 위치하는 숫자를 구하여 출력해야 하는 문제이다. 필자는 처음엔, 특정 소수점에 있는 숫자를 일의 자리로 꺼내는 것만 생각하였다가 오버플로우가 발생하였었다. 이 과정을 해결하면서, 필요..
2022.10.27 -
[백준 BOJ] 9655번 돌 게임 (C++/cpp)
문제 설명 https://www.acmicpc.net/problem/9655 9655번: 돌 게임 상근이가 게임을 이기면 SK를, 창영이가 게임을 이기면 CY을 출력한다. www.acmicpc.net 접근 방법 - 게임 이론의 기초 문제 백준의 9655번 문제는 간단한 게임 이론의 원리를 이용하여 해결해야 하는 기초 문제이다. 해당 문제는, 주어진 규칙대로 게임을 진행했을 시 이기는 사람을 출력해야 하는 문제이다. 이 문제는 DP로 해결하는 방법도 있지만, 필자는 게임 이론을 이용하여 해결해보았다. (게임 이론에 대한 설명은 추후에 자세한 내용을 가지고 글을 작성해보고자 한다.) 혹여나 해당 문제를 해결하는 데에 어려움을 겪고 있다면 아래의 설명과 코드를 참고해보길 바란다. 아래에, 필자가 게임 이론에 ..
2022.10.27 -
[백준 BOJ] 3273번 두 수의 합 (C++/cpp)
문제 설명 https://www.acmicpc.net/problem/3273 3273번: 두 수의 합 n개의 서로 다른 양의 정수 a1, a2, ..., an으로 이루어진 수열이 있다. ai의 값은 1보다 크거나 같고, 1000000보다 작거나 같은 자연수이다. 자연수 x가 주어졌을 때, ai + aj = x (1 ≤ i < j ≤ n)을 만족하는 www.acmicpc.net 접근 방법 - 정렬을 응용한 두 포인터 문제 백준의 3273번 문제는 정렬과 함께 해결해야 하는 두 포인터 알고리즘 문제이다. 해당 문제는, 주어진 숫자들 중 2개의 합이 특정 입력값과 같은 경우가 몇 개인지를 구하여 출력해야 하는 문제이다. 이 문제는 두 포인터 알고리즘을 이용하여 해결해야 하는데, 이와 비슷한 유형의 문제에 대해..
2022.10.26 -
[백준 BOJ] 9654번 나부 함대 데이터 (C++/cpp)
문제 설명 https://www.acmicpc.net/problem/9654 9654번: 나부 함대 데이터 나부 행성의 함대의 정보를 아래와 예제 출력과 같은 표로 출력한다. 처음 두 열의 너비는 문자 15개, 세 번째 열은 11개, 마지막 열의 너비는 10개이다. www.acmicpc.net 접근 방법 - 기본적인 출력문 작성 문제 백준의 9654번 문제는 기본적으로 출력문을 작성하여 해결할 수 있는 문제이다. 해당 문제는, 출력 예시에 나와있는 대로 나부 행성의 함대 정보를 출력해야 하는 문제이다. 별다른 입력 없이 출력만 원활히 수행하면 되는 문제이기 때문에, 사용하는 언어의 기본적인 문법만 잘 인지하고 있다면 아주 쉽게 풀 수 있는 문제로 예상된다. 다만, 끝 부분의 공백 출력도 적절히 해주어야 ..
2022.10.25