BOJ(368)
-
[백준 BOJ] 11651번 좌표 정렬하기 2 (C++/cpp)
문제 설명https://www.acmicpc.net/problem/11651 접근 방법 - 구조체를 활용한 정렬 기초 문제백준의 11651번 문제는 구조체 정렬을 통하여 비교적 쉽게 해결할 수 있는 문제이다.해당 문제는, 입력으로 주어지는 여러 쌍의 (x, y) 좌표들을 아래 기준에 맞추어 정렬한 결과를 출력하면 되는 문제이다.- y 좌표를 기준으로 오름차순 정렬한다.- y 좌표가 같은 경우엔, x 좌표를 기준으로 오름차순 정렬한다. 어떠한 경우엔 x, y 좌표 모두 비교해야 하기 때문에, 2개의 정보를 하나로 묶을 수 있게끔 구조체를 정의하였다.그리고 해당 구조체에 맞게끔 비교 함수(compare)를 별도로 구현하고, 이를 기반으로 sort() 함수를 실행하였다.자세한 설명은 아래에 기재해 놓으니, ..
2025.02.22 -
[백준 BOJ] 30030번 스위트콘 가격 구하기 (C++/cpp)
문제 설명https://www.acmicpc.net/problem/30030 접근 방법 - 기초 사칙연산을 활용한 수학 문제백준의 30030번 문제는 기초적인 사칙연산을 활용하여 쉽게 해결할 수 있는 수학 문제이다.해당 문제는 부가가치세가 붙은 스위트콘 가격(B)이 입력으로 주어질 때 부가가치세를 제외한 스위트콘 가격(A)을 구하여 출력하면 되는 문제이다.여기서 문제 지문을 통하여 미루어 보았을 때, 위 A와 B의 상관관계는 아래와 같다.B = A + A*0.1(여기서, A*0.1은 부가가치세이다.) 필자는 B에 중심이 맞추어진 위 식을 A에 중심을 맞추어, 아래처럼 식을 변형해 볼 수 있었다.A = (B/11) * 10위 식을 기반으로 하여 코드를 작성하였고, 이를 통하여 문제를 쉽게 해결할 수 있었..
2025.02.17 -
[백준 BOJ] 10824번 네 수 (C++/cpp)
문제 설명https://www.acmicpc.net/problem/10824 접근 방법 - 문자열 연산과 사칙연산의 융합 기초 문제백준의 10824번 문제는 문자열 연산과 사칙연산을 함께 응용하여 해결할 수 있는 간단한 문제이다.해당 문제는, 입력으로 주어지는 4개의 숫자에 대하여 숫자 덧셈 및 문자열 합치기를 수행한 결괏값을 구하여 출력하면 되는 문제이다.이때, 결괏값은 아래와 같은 규칙으로 인해 도출되어야 한다. (예제 1번의 입출력을 예시로 삼았다.) 10 20 30 40 1020 + 3040 = 4060 위 규칙에 대해서만 잘 이해하였다면 문제 해결 방법을 찾는 것 자체는 어렵지 않았을 것으로 예상된다.다만 주의해야 할 점이 있다면, 4개의 숫자가 1,000,000으로도 입력이 들어올 수 있기 ..
2025.02.10 -
[백준 BOJ] 23246번 Sport Climbing Combined (C++/cpp)
문제 설명https://www.acmicpc.net/problem/23246 접근 방법 - 구조체를 활용한 정렬 응용문제백준의 23246번 문제는 구조체 정렬을 활용하여 해결할 수 있는 문제이다.해당 문제는, 각 선수의 고유 번호와 세 종목의 점수가 입력으로 주어질 때 금/은/동메달을 받을 선수의 고유 번호가 각각 어떻게 되는지를 구하여 출력해야 하는 문제이다.이때, 순위를 결정짓는 기준은 아래와 같다.- 3개의 점수를 모두 곱한 수가 낮은 선수가 더 높은 순위를 가진다.- 곱산 결과가 동일한 경우엔, 3개의 점수를 모두 더한 수가 낮은 선수가 더 높은 순위를 가진다. - 합산 결과도 동일한 경우엔, 선수의 고유 번호가 낮은 선수가 더 높은 순위를 가진다. 필자는 문제에 나타나있는 대로, 구조체(선수의..
2025.02.06 -
[백준 BOJ] 21631번 Checkers (C++/cpp)
문제 설명https://www.acmicpc.net/problem/21631 접근 방법 - 기초적인 사칙연산을 활용한 구현 문제백준의 21631번 문제는 사칙연산을 활용하여 비교적 쉽게 해결할 수 있는 문제이다.해당 문제는, 입력으로 주어지는 검은 말과 하얀 말의 개수에 대하여 최대로 만들 수 있는 검은 줄무늬의 개수를 구하여 출력하면 되는 문제이다.이때 검은 말과 하얀 말을 하나씩 교차로 배치하여 줄무늬를 만들어야한다는 전제가 있다.해당 문제의 지문에 대하여 한글 번역본은 아래 링크를 참고하면 된다.https://www.acmicpc.net/board/view/85780 필자는 아래처럼 구상하여 해결 방법을 모색하였다.1) 검은 말이 하얀 말보다 더 많은 경우(ex) White 2 / Black 5..
2025.02.02 -
[백준 BOJ] 2210번 숫자판 점프 (C++/cpp)
문제 설명https://www.acmicpc.net/problem/2210 접근 방법 - DFS를 활용한 브루트포스 알고리즘 문제백준의 2210번 문제는 브루트포스 알고리즘과 깊이 우선 탐색(DFS)을 함께 응용하여 해결할 수 있는 문제이다.해당 문제는, 5*5 숫자판에 대하여 만들 수 있는 6자리 숫자의 가짓수를 구하여 정답으로 출력해야 하는 문제이다.이 문제의 지문에는 "한번 거쳤던 칸을 다시 거쳐도 된다"는 전제가 있기 때문에, 다른 DFS 문제보다도 비교적 쉬운 축에 속한다고 볼 수 있다. (이 지문을 통하여 각 요소의 방문 여부를 따져줄 필요는 없게 되었다.)시간제한도 2초로 넉넉하며 입력으로 주어지는 숫자도 총 25개뿐이기 때문에, 필자는 재귀 함수를 통하여 가능한 경우의 수를 모두 구하여서..
2025.01.27