백준(371)
-
[백준 BOJ] 4358번 생태학 (C++/cpp)
문제 설명https://www.acmicpc.net/problem/4358 접근 방법 - 벡터와 맵을 활용한 연산 문제백준의 4358번 문제는 벡터와 맵 자료구조를 함께 사용하여 해결할 수 있는 문제이다.해당 문제는, 나무들의 종이 모두 입력으로 주어질 때 각 종의 분포 비율을 각각 구하여 사전 순으로 정답을 출력해야 하는 문제이다.이때 각 종의 분포 비율을 출력할 때 소수점 넷째 자리까지 출력하라고 명시되어 있기 때문에 이 점까지 함께 참고하길 바란다. 벡터와 맵 자료구조를 활용하는 데에 익숙하다면, 생각보다 어렵지 않게 풀 수 있을 것으로 예상된다.필자의 경우에는 2개의 자료구조를 아래의 용도대로 활용하였다.vector 각 나무 종의 이름을 저장하는 데에 활용 (나무 종의 사전 순 정렬에 필요)ma..
2025.03.05 -
[백준 BOJ] 15727번 조별과제를 하려는데 조장이 사라졌다 (C++/cpp)
문제 설명https://www.acmicpc.net/problem/15727 접근 방법 - 기초적인 사칙연산을 활용한 수학 문제백준의 15727번 문제는 사칙연산을 활용하여 쉽게 해결할 수 있는 문제이다.해당 문제는, 성우와 민건이의 집 사이의 거리가 입력으로 주어질 때 성우가 민건이를 찾을 수 있는 시간을 분 단위로 구하여 출력하면 되는 문제이다.이때 성우는 1분에 최대 5의 거리를 이동할 수 있다고 하니 함께 참고하면 되겠다. 이 문제는 나눗셈 연산을 통하여 간단하게 해결할 수 있는 문제이다.필자는 아래처럼 방법을 구상하여 코드를 작성하였다.1) 주어진 거리가 12일 때 (예제 입력 1)12 = 5 + 5 + 2성우가 5-5-2씩 이동하여 도착할 수 있으므로, 정답은 3이다.2) 주어진 거리가 20..
2025.03.03 -
[백준 BOJ] 16499번 동일한 단어 그룹화하기 (C++/cpp)
문제 설명https://www.acmicpc.net/problem/16499 접근 방법 - 기초적인 문자열 정렬 문제백준의 16499번 문제는 문자열에 대한 문자 정렬을 통하여 비교적 쉽게 해결할 수 있는 문제이다.해당 문제는, 문자 구성은 같으나 순서만 다른 단어들을 하나의 그룹으로 묶을 때, 입력으로 주어지는 단어들에 대하여 그룹의 개수를 구하여 출력하면 되는 문제이다. 필자는 문제의 설명을 통하여, 단어를 구성하는 문자들을 알파벳 순으로 정렬하여 재구성하였을 때 같은 결과가 나오는 단어들을 하나의 그룹으로 취급하는 식으로 문제를 해결해보려 하였다.이에 대해 좀 더 쉽게 이야기하기 위해, 문제에 제시된 예제 입력 1에 빗대어 설명을 추가해 본다.(입력으로 주어진 4개의 단어)cat, dog, god..
2025.03.02 -
[백준 BOJ] 11726번 2*N 타일링 (C++/cpp)
문제 설명https://www.acmicpc.net/problem/11726 접근 방법 - DP의 기초 응용문제 (점화식 설계)백준의 11726번 문제는 DP(다이나믹 프로그래밍)의 기초 문제로 점화식 설계를 통해 해결할 수 있는 문제이다.해당 문제는, 입력으로 주어지는 n에 대한 2*n 크기의 직사각형을 2*1, 1*2 타일을 통하여 채울 수 있는 가짓수를 구하여 출력해야 하는 문제이다.이때 문제를 살펴보면, 도출된 결과에 대해 10,007로 나눈 나머지 값을 정답으로 출력해야 하니 해결할 시에 이 점을 참고하길 바란다. 필자는 우선 n=1부터 시작하여 몇 가지 입력에 대한 경우의 수를 직접 세어보았다.2*1 크기인 경우 (n=1) => 1가지2*2 크기인 경우 (n=2) => 2가지2*3 크기인 ..
2025.02.23 -
[백준 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