cpp(320)
-
[백준 BOJ] 1755번 숫자놀이 (C++/cpp)
문제 설명https://www.acmicpc.net/problem/1755 접근 방법 - 정렬을 활용한 문자열 연산 응용문제백준의 1755번 문제는 정렬을 활용하여 해결할 수 있는 문자열 연산 문제이다.해당 문제는, 입력으로 주어지는 범위 내의 숫자들에 대하여 각 자릿수의 숫자를 영어 단어로 읽어 이를 사전 순으로 정렬하여 출력하는 문제이다.예를 들어, "40"은 위 방식대로 읽는다면 "four zero"가 되며 "39"는 "three nine"이 된다.본래 39가 40보다 앞에 있는 숫자이긴 하나, 위 방식대로 읽은 결과를 사전 순으로 나열할 때에는 40이 39를 앞선다고 볼 수 있다. 제한 시간도 2초로 넉넉하게 있기 때문에, 필자는 지문에 있는 설명을 그대로 코드에 반영하면서 문제 해결을 시도하였..
2026.01.09 -
[백준 BOJ] 28635번 Индикатор (C++/cpp)
문제 설명https://www.acmicpc.net/problem/28635 접근 방법 - 기초적인 사칙연산 문제백준의 28635번 문제는 기초적인 사칙연산을 활용하여 간단히 해결할 수 있는 문제이다.해당 문제는, 카운터의 화면에 표시된 숫자(a)에서 특정 숫자(b)까지 만드는 데에 버튼을 눌러야 하는 총횟수를 구하여 출력하면 되는 문제이다.이때 버튼을 눌렀을 때 화면에 표시되는 숫자는 다음과 같은 규칙에 따라 변동이 된다.카운터의 버튼을 누르면, 수가 1씩 증가한다.특정 숫자(m)를 넘어가면, 화면의 숫자는 1로 돌아간다.외국어로 작성된 문제 지문에 대한 해석본은 아래 링크에 있으니, 문제 해결할 시 함께 참고하면 좋을 것이다.https://www.acmicpc.net/board/view/148182..
2026.01.08 -
[백준 BOJ] 31656번 Sticky Keys (C++/cpp)
문제 설명https://www.acmicpc.net/problem/31656 접근 방법 - 기초적인 문자열 연산 문제백준의 31656번 문제는 문자열에 대한 기초적인 연산으로 해결할 수 있는 문제이다.해당 문제는, 입력으로 주어지는 문자열에 있어 실수로 연속으로 같은 문자를 입력하였을 경우를 교정한 결괏값을 정답으로 출력하면 되는 문제이다.외국어로 작성된 문제 지문에 대한 해석본은 아래 링크에 있으니, 문제 해결할 시 함께 참고하면 좋을 것이다.https://www.acmicpc.net/board/view/164016 필자는 문자열을 배열처럼 활용할 수 있는 C++의 특성을 고려하여, 각 위치의 문자가 그 직전 문자와 같은 값을 가지는지를 확인해 가며 문제 해결을 시도해 보았다.이때, 예제 입력들을 살..
2026.01.08 -
[백준 BOJ] 2740번 행렬 곱셈 (C++/cpp)
문제 설명https://www.acmicpc.net/problem/2740 접근 방법 - 배열을 활용한 연산 응용문제백준의 2740번 문제는 배열을 활용하면서 연산을 수행하여 해결해야 하는 문제이다.해당 문제는, 입력으로 주어지는 두 행렬에 대하여 곱 연산을 수행하였을 때 나타나는 결괏값을 구하여 출력해야 하는 문제이다.이때, 행렬 곱에 대한 공식을 사전에 알고 있어야 해당 문제를 해결할 수 있다는 점을 꼭 감안하여야 한다. 사실 필자도 행렬 연산은 생소해서(...) 연산 공식을 찾아가면서 문제 해결을 시도해 보았다.행렬 곱셈 결과의 각 요소값은 모두 아래와 같은 방식으로 연산이 이루어지니, 처음 접해보는 경우에는 꼭 참고해 보길 바란다.(이때 행렬 곱셈은, A 행렬의 열 개수(가로)와 B 행렬의 행 ..
2026.01.08 -
[백준 BOJ] 11497번 통나무 건너뛰기 (C++/cpp)
문제 설명https://www.acmicpc.net/problem/11497 접근 방법 - 그리디 알고리즘을 활용한 정렬 문제백준의 11497번 문제는 그리디 알고리즘과 정렬을 활용하여 해결해야 하는 문제이다.해당 문제는, 입력으로 주어지는 높이들의 통나무를 임의로 배치하여 인접한 것들끼리 건너뛸 때 나타날 수 있는 난이도 값의 최솟값을 구하여 출력해야 하는 문제이다.이때 난이도 값은, 통나무들을 임의로 배치하였을 때 인접한 통나무 간 높이의 차의 최댓값으로 결정이 난다.(통나무를 배열 형태로 나열하였을 때, 배열의 시작과 끝에 있는 통나무도 서로 인접해 있다는 점을 주의해야 한다.) 필자는 문제 지문을 읽으면서, "그렇다면 서서히 높아지고 서서히 낮아지도록 배치하면 정답을 구할 수 있지 않을까?"라는..
2026.01.04 -
[백준 BOJ] 2965번 캥거루 세마리 (C++/cpp)
문제 설명https://www.acmicpc.net/problem/2965 접근 방법 - 기초적인 사칙연산 문제백준의 2965번 문제는 문제 지문에 대하여 사칙연산을 통해 해결할 수 있는 문제이다.해당 문제는, 서로 다른 캥거루 3마리의 좌표가 입력으로 주어질 때 캥거루들이 최대로 움직일 수 있는 횟수를 구하여 출력하면 되는 문제이다.이때, 바깥쪽에 있는 두 캥거루 중 하나가 다른 캥거루 사이의 좌표로 점프하여 움직인다는 규칙이 있으니 꼭 참고해야 한다. 필자는 문제 지문을 읽은 뒤, 다음과 같이 구상하고 이를 기반으로 로직을 작성해 보았다. 필자는 위처럼 입출력 예제 2번을 예시로 들어 로직을 그림으로 그려보았다.이때 그림을 자세히 살펴보면, 초기 상태에서의 가장 넓은 간격 사이로 캥거루들이 교차로 ..
2025.12.29