PS (Program Solving)/BOJ (백준)(351)
-
[백준 BOJ] 2210번 숫자판 점프 (C++/cpp)
문제 설명https://www.acmicpc.net/problem/2210 접근 방법 - DFS를 활용한 브루트포스 알고리즘 문제백준의 2210번 문제는 브루트포스 알고리즘과 깊이 우선 탐색(DFS)을 함께 응용하여 해결할 수 있는 문제이다.해당 문제는, 5*5 숫자판에 대하여 만들 수 있는 6자리 숫자의 가짓수를 구하여 정답으로 출력해야 하는 문제이다.이 문제의 지문에는 "한번 거쳤던 칸을 다시 거쳐도 된다"는 전제가 있기 때문에, 다른 DFS 문제보다도 비교적 쉬운 축에 속한다고 볼 수 있다. (이 지문을 통하여 각 요소의 방문 여부를 따져줄 필요는 없게 되었다.)시간제한도 2초로 넉넉하며 입력으로 주어지는 숫자도 총 25개뿐이기 때문에, 필자는 재귀 함수를 통하여 가능한 경우의 수를 모두 구하여서..
2025.01.27 -
[백준 BOJ] 2476번 주사위 게임 (C++/cpp)
문제 설명https://www.acmicpc.net/problem/2476 접근 방법 - 조건식을 활용한 기초 사칙연산 문제백준의 2476번 문제는 조건식과 기본적인 사칙연산을 통해 비교적 쉽게 해결할 수 있는 문제이다.해당 문제는, 여러 사람이 각각 주사위를 굴린 결과가 입력으로 주어질 때 이들이 받을 상금 중 가장 큰 값을 구하여 출력하면 되는 문제이다.이때, 상금을 책정하는 방식은 아래의 규칙을 따른다. (문제 지문 중 일부를 사진으로 발췌하였다.)각자 3개의 주사위를 굴리고, 주사위의 눈 중 몇 개의 숫자가 동일한지에 따라 아래처럼 상금이 책정된다.조건식을 활용하는 방식과 최댓값을 구하는 방법만 잘 알고 있다면 어렵지 않게 해결할 수 있었을 것으로 예상된다.자세한 풀이 방식은 아래에 기재해 놓으..
2025.01.26 -
[백준 BOJ] 10768번 특별한 날 (C++/cpp)
문제 설명https://www.acmicpc.net/problem/10768 접근 방법 - 기초적인 숫자 비교 연산백준의 10768번 문제는 숫자 비교를 통하여 쉽게 해결할 수 있는 문제이다.해당 문제는, 입력받은 월과 일에 대하여 특별한 날인 2월 18일 기점으로 전인지 후인지를 출력하면 되는 문제이다.문제에서 제시하는 대로 "Before", "After" 그리고 당일인 경우에 출력하는 "Special" 중 하나를 출력하면 된다.지문 자체는 매우 간단해서 더 자세한 설명은 생략하고자 한다.혹여나 해당 문제를 해결하는 데에 어려움을 겪고 있다면, 아래의 설명과 코드를 참고해보길 바란다.필자는 아래의 순서대로 코드를 작성하여 문제를 해결하였다. 코드의 실행 순서1) 월과 일(m, d)에 대하여 입력받는다..
2025.01.01 -
[백준 BOJ] 1769번 3의 배수 (C++/cpp)
문제 설명https://www.acmicpc.net/problem/1769 접근 방법 - 기초적인 문자열-숫자 변환 연산 문제백준의 1769번 문제는 문자열과 숫자를 변형하는 연산을 통해 비교적 쉽게 해결할 수 있는 문제이다.해당 문제는, 입력받은 숫자를 일련의 규칙을 통해 변환하는데, 숫자를 변환한 횟수와 입력값이 3의 배수인지에 대해 구하여 출력해야 하는 문제이다.이때 일련의 규칙은 아래와 같으며, 이는 3의 배수들의 규칙과 연관이 있으니 문제 해결을 시도할 시 참고해두길 바란다.- 두 자릿수 이상의 숫자라면, 각 자릿수의 숫자들을 모두 더한 숫자로 변환한다. (ex) 1234567 -> 1+2+3+4+5+6+7 = 28로 변환- 한 자릿수의 숫자일 때 이 숫자가 3/6/9 중 하나라면, 변환되..
2024.12.29 -
[백준 BOJ] 26042번 식당 입구 대기 줄 (C++/cpp)
문제 설명https://www.acmicpc.net/problem/26042 접근 방법 - 큐를 활용한 기초 연산 문제백준의 26042번 문제는 큐를 활용하여 간단하게 해결할 수 있는 자료구조 기초 문제이다.해당 문제는 입력에 따라 학생이 식당에 들어오고 음식이 제공될 때 대기 학생의 최대 수와 그때의 대기줄 맨 뒤에 있는 학생의 번호를 구하여 출력해야 하는 문제이다.이때 대기하는 학생이 최대인 경우가 중복되어 나타나는 경우에는 맨 뒤에 있는 학생의 번호는 가장 작은 경우를 출력하라고 문제에 명시되어 있다.그리고 입력은 아래의 규칙대로 주어지니 참고하면 되겠다.* 1 num :: num번 학생이 식당에 도착하여 대기를 시작함* 2 :: (식당에 먼저 온 순서대로) 학생 1명에게 식사를 제공함 자료구조 ..
2024.12.22 -
[백준 BOJ] 28519번 Планеты двух измерений (C++/cpp)
문제 설명https://www.acmicpc.net/problem/28519 접근 방법 - 규칙을 활용한 기초적인 사칙연산 문제백준의 28519번 문제는 정해진 규칙을 참조하면서 쉽게 해결할 수 있는 사칙연산 문제이다.해당 문제는, 2종류의 각 초콜릿 개수가 주어지고 초콜릿을 먹는 특정 규칙이 있을 때 최대로 먹을 수 있는 초콜릿의 개수를 구하여 출력해야 하는 문제이다.이때, 초콜릿을 먹는 규칙은 아래와 같다.- 초콜릿은 한 번에 하나씩 먹을 수 있다.- 직전에 먹은 초콜릿과 다른 초콜릿을 먹을 수 있다.(다만, 처음 먹는 경우라면 원하는 종류의 초콜릿을 골라서 먹으면 된다.)해당 문제는 한국어로 적혀있지 않아, 한국어 지문 번역본을 참고하면서 풀어보길 바란다.https://www.acmicpc.net..
2024.11.30