cpp(335)
-
[백준 BOJ] 2010번 플러그 (C++/cpp)
문제 설명https://www.acmicpc.net/problem/2010 접근 방법 - 기초적인 사칙연산 문제백준의 2010번 문제는 기초적인 사칙연산을 활용하여 비교적 간단하게 해결할 수 있는 문제이다.해당 문제는, 멀티탭의 개수와 각 멀티탭의 콘센트 수가 입력으로 주어질 때 최대한 많은 컴퓨터를 연결하는 데에 활용할 수 있는 콘센트의 개수를 구하여 출력하면 되는 문제이다.이때, 집에 있는 콘센트가 하나뿐이라는 점을 전제로 하여, 컴퓨터 전원 연결은 반드시 멀티탭을 이용해 연결해야 한다. 멀티탭을 모두 활용하여 최대한 많은 컴퓨터의 전원을 연결해야 하기 때문에, 멀티탭끼리 연결하여 모든 멀티탭으로 전력을 끌어오는 것까지 함께 고려해야 한다.따라서 필자는, 멀티탭의 콘센트 수를 모두 합하되 멀티탭끼리..
2026.03.02 -
[백준 BOJ] 10431번 줄세우기 (C++/cpp)
문제 설명https://www.acmicpc.net/problem/10431 접근 방법 - 값 비교를 활용한 정렬 응용문제백준의 10431번 문제는 값 비교 연산을 활용하여 비교적 어렵지 않게 해결할 수 있는 정렬 응용문제이다.해당 문제는, 줄을 세울 20명의 아이들의 키가 입력으로 주어질 때 한 명씩 줄을 세우면서 아이들이 뒤로 물러나는 총 횟수를 연산하여 출력해야 하는 문제이다.아이들의 키를 기준으로 오름차순으로 한 줄로 세우고자 한다. 이를 위해서, 아이들을 한 명씩 차례대로 줄에 세우면서 오름차순 정렬을 진행하고자 한다.이때, 현재 순번의 아이를 줄에 세울 때, 이미 줄을 서 있는 아이들 중에서 키가 더 큰 아이가 있다면 그 아이들은 모두 한 걸음씩 뒤로 물러난다. 그리고 그 자리에 현재 순번의..
2026.03.02 -
[백준 BOJ] 20113번 긴급 회의 (C++/cpp)
문제 설명https://www.acmicpc.net/problem/20113 접근 방법 - 맵을 활용한 값 비교 연산 문제백준의 20113번 문제는 맵 자료구조를 활용하여 값을 비교하면서 정답을 구할 수 있는 문제이다.해당 문제는, 각 유저가 임포스터로 지목한 투표 결과가 입력으로 주어질 때 퇴출되는 유저 번호를 구하여 이를 정답으로 출력하면 되는 문제이다.(가장 많은 표를 받은 유저가 퇴출되고, 투표를 건너뛴 경우의 입력값은 0이다.)이때, 가장 많은 표를 받은 유저가 2명 이상인 경우에는 아무도 퇴출되지 않는다는 조건이 문제에 명시되어 있다. 맵은 일반적인 배열과는 달리, value 뿐만 아니라 key 값도 직접 제어할 수 있다는 장점을 가진 자료구조이다.필자는 이러한 맵의 특성을 고려하여, 투표받..
2026.02.21 -
[백준 BOJ] 2670번 연속부분최대곱 (C++/cpp)
문제 설명https://www.acmicpc.net/problem/2670 접근 방법 - 브루트포스 알고리즘을 활용한 DP 기초 문제백준의 2670번 문제는 브루트포스 알고리즘을 활용한 다이나믹 프로그래밍의 기초 활용 문제이다.해당 문제는, 주어지는 실수형 수열에 대하여 하나 이상의 연속된 수들의 곱이 최대가 되는 값을 찾아 이 결괏값을 정답으로 출력해야 하는 문제이다.이때 출력 조건을 확인해 보면, 소수점 넷째 자리에서 반올림하여 소수점 3번째 자리까지 정답을 출력하라는 점을 알 수 있다. 우선은 2가지 알고리즘 용어의 정의부터 짚어본 뒤, 이후에 문제 해결 원리를 설명하는 것이 좋을 듯하다.브루트포스 알고리즘이란, 가능한 모든 경우에 대한 연산을 시도해 보며 정답을 탐색하는 알고리즘을 뜻한다.다이나..
2026.02.17 -
[백준 BOJ] 13251번 조약돌 꺼내기 (C++/cpp)
문제 설명https://www.acmicpc.net/problem/13251 접근 방법 - 조합을 활용한 확률 연산 응용문제백준의 13251번 문제는 조합을 활용하여 확률에 대한 경우의 수를 고려하면서 연산을 진행해야 하는 문제이다.해당 문제는, 조약돌의 색상과 각각의 개수가 입력으로 주어질 때 K번 조약돌을 뽑을 경우 모두 같은 색상일 확률을 구하여 이를 정답으로 출력해야 하는 문제이다.이때 출력 조건을 확인해 보면, 소수점 9번째 자리 이상으로 정밀하게 정답을 출력해야 한다는 점을 알 수 있다. 우선 학창 시절에 잠깐 들어봤을 법한 조합의 개념부터 먼저 훑어볼 필요가 있다.조합이란, 서로 다른 n개에서 순서를 고려하지 않고 r개를 택하는 경우의 수를 의미한다.조합의 기본적인 공식은 아래와 같다. 필..
2026.02.16 -
[백준 BOJ] 27002번 Max Factor (C++/cpp)
문제 설명https://www.acmicpc.net/problem/27002 접근 방법 - 소수 판정을 활용한 연산 문제백준의 27002번 문제는 소수 판정의 원리를 활용하여 연산을 진행해야 하는 문제이다.해당 문제는, 주어지는 일련번호들에 대해 가장 큰 소수 인수를 가지는 번호를 구하여 이를 출력해야 하는 문제이다.(조건을 충족하는 정답이 2개 이상으로 나타나는 경우에는, 입력에서 가장 먼저 등장한 일련번호를 정답으로 출력하면 된다.)문제의 게시판에 지문에 대한 번역본이 따로 없어, 생성형 AI를 통해 번역한 결과를 아래에 올리니 함께 참고하길 바란다. 필자는, 소수 판정과 연관성이 깊은 에라토스테네스의 체 알고리즘을 주로 활용하여 해당 문제 해결을 시도해 보았다.만약 위 알고리즘에 대해 처음 접해본..
2026.02.04