PS (Program Solving)(375)
-
[백준 BOJ] 1018번 체스판 다시 칠하기 (C++/cpp)
문제 설명 https://www.acmicpc.net/problem/1018 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 접근 방법 - 브루트포스 알고리즘을 이용한 연산 문제 백준의 1018번 문제는 브루트포스 알고리즘을 이용하여 해결해야 하는 문제이다. 해당 문제는, 입력받은 보드를 잘라 체스판으로 만들 때 다시 칠해야하는 칸의 최소 개수를 구해야하는 문제이다. 브루트포스 알고리즘에 관한 다른 문제에 관해 이전에 필자가 작성한 글이 있다. 이 알고리즘에 대해 아직 어색하다면 아래의 링크 글을 한번..
2022.03.05 -
[백준 BOJ] 5597번 과제 안 내신 분..? (C++/cpp)
문제 설명 https://www.acmicpc.net/problem/5597 5597번: 과제 안 내신 분..? X대학 M교수님은 프로그래밍 수업을 맡고 있다. 교실엔 학생이 30명이 있는데, 학생 명부엔 각 학생별로 1번부터 30번까지 출석번호가 붙어 있다. 교수님이 내준 특별과제를 28명이 제출했는데, www.acmicpc.net 접근 방법 - 배열을 이용한 간단한 연산 백준의 5597번 문제는 배열을 이용한 간단한 연산 문제이다. 해당 문제는, 28명의 제출자 출석 번호를 입력받으며 제출하지 않은 2명의 출석 번호를 출력해야 하는 문제이다. 필자는 앞에서도 작성하였다시피, 배열을 이용하여 이 문제를 해결하였다. 받는 입력값에 대응하는 배열값에 1을 더하면서 입력을 전부 받은 뒤, 최종적으로 배열값이..
2022.02.27 -
[백준 BOJ] 2164번 카드2 (C++/cpp)
문제 설명 https://www.acmicpc.net/problem/2164 2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net 접근 방법 - 큐를 이용한 간단한 연산 백준의 2164번 문제는 큐를 이용하여 간단하게 해결할 수 있는 문제이다. 해당 문제는, 일정 규칙에 따라 카드를 옮기고 버리면서 가장 마지막에 남는 카드를 구해야 하는 문제이다. 여기서 규칙은 간단하게, 제일 위에 있는 첫 번째 카드는 버리고 두 번째 카드는 맨 아래로 다시 넣는 행위의 반복이다. 필자는 큐를 선언하여 해당 문제를 해결하였다. 어..
2022.02.27 -
[백준 BOJ] 12789번 도키도키 간식드리미 (C++/cpp)
문제 설명 https://www.acmicpc.net/problem/12789 12789번: 도키도키 간식드리미 인하대학교 학생회에서는 중간, 기말고사 때마다 시험 공부에 지친 학우들을 위해 간식을 나눠주는 간식 드리미 행사를 실시한다. 승환이는 시험 기간이 될 때마다 간식을 받을 생각에 두근두 www.acmicpc.net 접근 방법 - 스택을 이용한 연산 문제 백준의 12789번 문제는 스택을 이용하여 해결해야 하는 문제이다. 해당 문제는, 입력되는 값에 대하여, 1번부터 시작하여 순서대로 n번까지 배부할 수 있는지의 여부를 묻고 있는 문제이다. 필자는 num이라는 변수를 따로 선언하여 입력을 받는 대로 스택에 push해야 하는지 바로 배부되는지에 대한 여부를 정하게끔 하였다. 그리고 최종적으로, 스택..
2022.02.20 -
[백준 BOJ] 9086번 문자열 (C++/cpp)
문제 설명 https://www.acmicpc.net/problem/9086 9086번: 문자열 입력의 첫 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 10)가 주어진다. 각 테스트 케이스는 한 줄에 하나의 문자열이 주어진다. 문자열은 알파벳 A~Z 대문자로 이루어지며 알파벳 사이에 공백은 없으 www.acmicpc.net 접근 방법 - 문자열 사용의 기본 연산 백준의 9086번 문제는 문자열에 있어 기본적인 연산을 다루는 문제이다. 해당 문제는, 각 케이스에서 주어지는 입력값에 있어 첫 글자와 끝 글자만 출력하게끔 해야 하는 문제이다. 필자는 해당 문제를 해결할 때 string 헤더를 사용하였으며, 이 헤더의 length() 함수를 사용해 출력을 원활히 하였다. 해당 함수는 문자열을 이용할 때 많이 ..
2022.02.20 -
[백준 BOJ] 20001번 고무오리 디버깅 (C++/cpp)
문제 설명 https://www.acmicpc.net/problem/20001 20001번: 고무오리 디버깅 백준 문제 풀이에 힘들어하는 수진이를 위해 민우는 문제해결에 도움이 되는 고무오리를 준비했다. 민우가 준비한 고무오리는 신비한 능력이 존재하는데, 최근에 풀던 백준 문제를 해결해주는 www.acmicpc.net 접근 방법 - 스택을 이용한 연산 문제 백준의 20001번 문제는 스택을 이용하여 해결해야 하는 문제이다. 해당 문제는, "고무오리"와 "문제"만으로 이루어져 있는 입력값에 대하여, 문제를 모두 해결할 수 있는지에 대한 여부를 구해야 하는 문제이다. (문제에 대한 자세한 설명은 위를 참고하길 바란다.) 필자는 문제의 흐름대로 코드를 작성하였는데, 스택에 대해 알고 있다면 쉽게 풀 수 있는 ..
2022.02.17