🖥️ CS/Baekjoon Algorithms 228

백준 22251번 빌런 호석 (C++)

문제 링크 : https://www.acmicpc.net/problem/22251 22251번: 빌런 호석 LED를 2개까지 바꿀 수 있을 때, 5층에서 3층, 6층, 8층, 그리고 9층으로 바꿔버릴 수 있다. www.acmicpc.net 문제 요약 1. 빌딩의 엘리베이터는 1층부터 N층까지 이용가능합니다. 2. 현재 층은 X층입니다. 3. 엘리베이터에서는 K자리수로 층이 보여집니다. (ex : K=4, X=1 -> 0001) 4. 호석이는 엘리베이터 디스플레이 중에서 최소 1개, 최대 P개를 반전시켜 층을 혼선시킬 예정입니다. 디스플레이를 반전시켜도 1이상 N이하의 층만 표시가 가능하빈다. 5. 현재 층 X에서 호석이가 반전시켜 나타낼 수 있는 층의 갯수를 구하세요. 핵심 포인트 호석이는 최대 P개의 ..

백준 17615번 볼 모으기 (C++)

문제 링크 : https://www.acmicpc.net/problem/17615 17615번: 볼 모으기 첫 번째 줄에는 볼의 총 개수 N이 주어진다. (1 ≤ N ≤ 500,000) 다음 줄에는 볼의 색깔을 나타내는 문자 R(빨간색 볼) 또는 B(파란색 볼)가 공백 없이 주어진다. 문자열에는 R 또는 B 중 한 종류만 주 www.acmicpc.net 문제 요약 1. N개의 공이 일렬로 주어집니다. 각 공의 색은 'R' 또는 'B'입니다. 2. 한 번에 한 개의 공을 선택하여 원하는 위치에 삽입할 수 있습니다. 단, 첫 번째로 선택한 공의 색과 동일한 색의 공만 선택하여 이동할 수 있습니다. 3. 최소 이동횟수로 'R'과 'B'공을 같은색끼리 모을 수 있도록 하세요. 핵심 포인트 N의 값이 최대 500..

백준 2493번 탑 (C++)

문제 링크 : https://www.acmicpc.net/problem/2493 2493번: 탑 첫째 줄에 탑의 수를 나타내는 정수 N이 주어진다. N은 1 이상 500,000 이하이다. 둘째 줄에는 N개의 탑들의 높이가 직선상에 놓인 순서대로 하나의 빈칸을 사이에 두고 주어진다. 탑들의 높이는 1 www.acmicpc.net 문제 요약 1. N개의 탑의 높이가 1열로 주어집니다. 2. 각각의 탑은 자신의 왼쪽에 위치한 탑 중 자신보다 높은 탑에게 신호를 전달할 수 있습니다. 3. 각각의 탑이 신호를 전달할 수 있는 탑의 위치를 출력하세요. 신호를 전달할 수 있는 탑이 존재하지 않을 경우 0을 출력하세요. 핵심 포인트 N의 값이 최대 500,000이 주어지므로, 무턱대로 2중 for문을 사용했다가 시간초..

백준 1446번 지름길 (C++)

문제 링크 : https://www.acmicpc.net/problem/1446 1446번: 지름길 첫째 줄에 지름길의 개수 N과 고속도로의 길이 D가 주어진다. N은 12 이하이고, D는 10,000보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 지름길의 시작 위치, 도착 위치, 지름길의 길이가 주 www.acmicpc.net 문제 요약 1. 세준이는 0에서 D킬로미터 길이의 고속도로를 지나 학교를 간다. 2. N개의 지름길 정보가 주어진다. 3. 세준이가 학교에 가기 위해 운전해야 하는 거리의 최솟값을 구해라. 4. 단, 모든 길은 일방통행이고 고속도로를 역주행할 수는 없다. 핵심 포인트 이 문제에서 주의해야할 점은 문제 요약의 4번입니다. 모든 길은 일방통행이고 고속도로를 역주행할 수는 없다..

백준 2234번 성곽 (C++)

문제 링크 : https://www.acmicpc.net/problem/2234 2234번: 성곽 첫째 줄에 두 정수 n, m이 주어진다. 다음 m개의 줄에는 n개의 정수로 벽에 대한 정보가 주어진다. 벽에 대한 정보는 한 정수로 주어지는데, 서쪽에 벽이 있을 때는 1을, 북쪽에 벽이 있을 때는 2를, www.acmicpc.net 문제 요약 1. m*n사이즈의 배열에 성곽에 대한 정보가 주어집니다. 2. 성곽[i][j]에는 해당 위치에 대한 벽의 정보가 주어집니다. 서쪽에 벽이 있을때는 1, 북쪽은 2, 동쪽은 4, 남쪽은 8입니다. 또한 성곽[i][j]는 최소 0, 최대 15의 값을 가집니다. 3. 이 성에 있는 방의 개수, 가장 넓은 방의 넓이, 하나의 벽을 제거하여 얻을 수 있는 가장 넓은 방의 크..

백준 2467번 용액 (C++)

문제 링크 : https://www.acmicpc.net/problem/2467 2467번: 용액 첫째 줄에는 전체 용액의 수 N이 입력된다. N은 2 이상 100,000 이하의 정수이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 오름차순으로 입력되며, 이 수들은 모두 - www.acmicpc.net 문제 요약 1. -1,000,000,000 부터 1,000,000,000 까지의 특성값을 지닌 산성 용액 / 알칼리성 용액이 N개 주어집니다. 2. 특성값은 알칼리성(음수)부터 산성(양수)까지 오름차순으로 주어집니다. 3. 서로 다른 두 용액을 혼합하여 특성값이 0에 가장 가까운 용액을 만들어내는 두 용액을 찾아 입력하세요. 4. 답이 여러가지 일 경우 아무 답이나 출력하세세요..

백준 10942번 팰린드롬? (C++)

문제 링크 : https://www.acmicpc.net/problem/10942 10942번: 팰린드롬? 총 M개의 줄에 걸쳐 홍준이의 질문에 대한 명우의 답을 입력으로 주어진 순서에 따라서 출력한다. 팰린드롬인 경우에는 1, 아닌 경우에는 0을 출력한다. www.acmicpc.net 문제 요약 1. 팰린드롬(Palindrome)은 '회문'입니다. 예를들어 '스위스', '11011'처럼 뒤집어도 의미가 똑같은 단어를 뜻합니다. 2. 수열 n의 크기, 수열 n을 입력 받은 뒤, 테스트 케이스 m과 m개의 테스트 케이스를 입력받으세요. 3. 각 테이트 케이스가 회문이면 1을, 그렇지 않을 경우 0을 출력하세요. 핵심 포인트 수열의 크기는 최대 2,000이며 테스트 케이스의 최대 크기는 1,000,000입니..

백준 11060번 점프 점프

문제 링크 : https://www.acmicpc.net/problem/11060 11060번: 점프 점프 재환이가 1×N 크기의 미로에 갇혀있다. 미로는 1×1 크기의 칸으로 이루어져 있고, 각 칸에는 정수가 하나 쓰여 있다. i번째 칸에 쓰여 있는 수를 Ai라고 했을 때, 재환이는 Ai이하만큼 오른쪽으로 www.acmicpc.net 문제 요약 1. 재환이는 일직선에 미로의 첫 번째 칸에 적혀있다. 그리고 N번째 칸으로 도착하는 것이 목표다. 2. 일직선 미로의 각 칸에는 숫자가 입력되어있다. 재환이는 N번째 칸에 있을 경우, N번째 칸에 있는 숫자만큼 최대 점프가 가능하다. 3. 예를들어 첫 번째 칸에 2가 적혀있을 경우, 재환이는 1칸을 점프하거나 2칸을 점프할 수 있다. 4. N번째 칸에 도달하기..

백준 2138번 전구와 스위치 (C++)

문제 링크 : https://www.acmicpc.net/problem/2138 2138번: 전구와 스위치 N개의 스위치와 N개의 전구가 있다. 각각의 전구는 켜져 있는(1) 상태와 꺼져 있는 (0) 상태 중 하나의 상태를 가진다. i(1 n; cin >> st; cin >> dt; } 2. 다음은 스위치를 키는 함수들입니다. solve(0)일 경우 첫 번째 전구를 키고 시작하며, solve(1)일 경우, 첫 번째 전구를 키지 않습니다. void lightOn(int idx) { // 1 if (idx > 0) temp[idx - 1] = (temp[idx - 1] == '0') ? '1' : '0'; temp[idx] = (temp[idx] == '0') ? '1' : '0'; if (idx < n -..

백준 11048번 이동하기 (C++)

문제 링크 : https://www.acmicpc.net/problem/11048 11048번: 이동하기 준규는 N×M 크기의 미로에 갇혀있다. 미로는 1×1크기의 방으로 나누어져 있고, 각 방에는 사탕이 놓여져 있다. 미로의 가장 왼쪽 윗 방은 (1, 1)이고, 가장 오른쪽 아랫 방은 (N, M)이다. 준규는 www.acmicpc.net 문제 요약 1. 진수는 미로의 [1,1]에서 [N,M]으로 가려고 합니다. 2. 진수의 이동방향은 진수가 (r,c)에 있다고 가정할때, (r+1, c), (r, c+1), (r+1, c+1)로 이동할 수 있습니다. 3. 미로의 방 중에는 사탕이 놓여진 방이 있습니다. 진수가 최대한으로 가져갈 수 있는 사탕 갯수를 구하세요. 핵심 포인트 이 문제는 BFS로도 풀 수 있지..