cpp(303)
-
[백준 BOJ] 11656번 접미사 배열 (C++/cpp)
문제 설명 https://www.acmicpc.net/problem/11656 11656번: 접미사 배열 첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000보다 작거나 같다. www.acmicpc.net 접근 방법 - 문자열에 대한 정렬 기초 문제 백준의 11656번 문제는 문자열 정렬에 있어 기초적인 부분을 다루고 있는 문제이다. 해당 문제는, 입력받은 문자열의 접미사들에 대하여 정렬을 수행하여 순차적으로 출력해야 하는 문제이다. 접미사에 대한 개념을 모르더라도, 문제의 설명만 잘 읽어본다면 어떤 의미인지 얼추 알 수 있을 것이다. 필자는 해결하는 순서를 부분 문자열 만들기 -> 정렬 순으로 생각하였는데, 여기서 substr()이라는 함수를 사용하였다. subst..
2022.11.24 -
[백준 BOJ] 15886번 내 선물을 받아줘 2 (C++/cpp)
문제 설명 https://www.acmicpc.net/problem/15886 15886번: 내 선물을 받아줘 2 욱제는 구사과의 열렬한 팬이다. 오늘 욱제는 구사과에게 선물()을 전달해주려고 한다. 지난 며칠간의 관찰 끝에 욱제는 구사과의 이동 패턴을 모두 파악했다. 구사과가 있는 곳은 1×N 크기의 직 www.acmicpc.net 접근 방법 - 문자열에 대한 기본적인 그래프 탐색 문제 백준의 15886번 문제는 문자열에 대한 기본적인 그래프 탐색 연산을 수행해야 하는 문제이다. 해당 문제는, 구사과에게 선물을 전달하기 위해 필요한 선물의 최솟값을 구하여 출력해야 하는 문제이다. 이때 입력값으론 하나의 문자열이 나타나고 이에 따라 구사과의 움직임을 아래와 같다. E: 이 문자를 만나면, 현재 위치(x)..
2022.11.24 -
[백준 BOJ] 14563번 완전수 (C++/cpp)
문제 설명 https://www.acmicpc.net/problem/14563 14563번: 완전수 어떠한 자연수 N에 대해서 N을 제외한 약수(진약수)의 합이 N이 되는 자연수를 완전수라고 한다. 예를 들어, 6의 약수는 1, 2, 3, 6인데 1+2+3은 6이기 때문에 완전수이다. 또 진약수의 합이 자기 자신 www.acmicpc.net 접근 방법 - 약수 연산의 기본 문제 백준의 14563번 문제는 약수 연산을 통해 간단하게 해결할 수 있는 문제이다. 해당 문제는, 입력값에 대해 자기 자신을 제외한 약수들의 합을 이용하여 알맞은 정답을 출력해야 하는 문제이다. 이때, 이러한 약수들의 합에 따라 아래처럼 판별하여 출력을 수행해야 한다. (ex) 입력값 n, n에 대한 자기 자신을 제외한 약수들의 합 ..
2022.11.22 -
[백준 BOJ] 2857번 FBI (C++/cpp)
문제 설명 https://www.acmicpc.net/problem/2857 2857번: FBI 5개 줄에 요원의 첩보원명이 주어진다. 첩보원명은 알파벳 대문자, 숫자 0~9, 대시 (-)로만 이루어져 있으며, 최대 10글자이다. www.acmicpc.net 접근 방법 - 문자열 연산의 응용문제 백준의 2857번 문제는 문자열 연산에 있어 다소 심화적인 부분을 다루고 있는 문제이다. 해당 문제는, 입력받은 5명의 이름들 중 FBI 요원의 각 인덱스를 구하여 출력해야 하는 문제이다. FBI 요원의 이름에 "FBI"라는 단어가 포함되어있다는 조건을 감안하면, 각 입력값에 이를 포함하는지를 확인하며 답을 구하면 될 것이다. 필자와 같은 경우에는 find() 함수를 주로 이용하여 이 문제를 해결해보았다. 자세한..
2022.11.22 -
[백준 BOJ] 11365번 !밀비 급일 (C++/cpp)
문제 설명 https://www.acmicpc.net/problem/11365 11365번: !밀비 급일 당신은 길을 가다가 이상한 쪽지를 발견했다. 그 쪽지에는 암호가 적혀 있었는데, 똑똑한 당신은 암호가 뒤집으면 해독된다는 것을 발견했다. 이 암호를 해독하는 프로그램을 작성하시오. www.acmicpc.net 접근 방법 - 문자열 연산의 기초 문제 백준의 11365번 문제는 문자열 연산에 있어 기본적인 원리를 다루고 있는 문제이다. 해당 문제는, 입력받은 문자열의 문자 순서를 뒤집어 출력해야 하는 문제이다. 이는, 반복문을 이용한 문자열 연산만 어느 정도 할 수 있다면 쉽게 풀 수 있는 문제일 것으로 예상된다. 다만, "END"를 입력받을 때까지 연산을 계속 수행하여야 하기 때문에 무한 반복문을 통해..
2022.11.21 -
[백준 BOJ] 9656번 돌 게임 2 (C++/cpp)
문제 설명 https://www.acmicpc.net/problem/9656 9656번: 돌 게임 2 상근이가 게임을 이기면 SK를, 창영이가 게임을 이기면 CY을 출력한다. www.acmicpc.net 접근 방법 - 게임 이론의 기초 문제 백준의 9656번 문제는 간단한 게임 이론의 원리를 이용하여 해결해야 하는 기초 문제이다. 해당 문제는, 주어진 규칙대로 게임을 진행했을 시 이기는 사람을 출력해야 하는 문제이다. 이 문제는 dp나 게임 이론을 통해 해결할 수 있는데, 필자는 게임 이론을 통해 해결해보았다. (게임 이론에 대한 설명은 추후에 자세한 내용을 가지고 글을 작성해보고자 한다.) 게임의 규칙만 살짝 다르고 유형 자체는 매우 흡사한 문제에 대해, 필자가 작성한 글의 링크를 아래에 기재해놓았다...
2022.11.21