목록알고리즘/백준 (341)
어흥
문제 링크: https://www.acmicpc.net/problem/1342 1342번: 행운의 문자열 민식이와 준영이는 자기 방에서 문자열을 공부하고 있다. 민식이가 말하길 인접해 있는 모든 문자가 같지 않은 문자열을 행운의 문자열이라고 한다고 한다. 준영이는 문자열 S를 분석하기 시작� www.acmicpc.net 1. 주의할 점 - 문자열을 V벡터에 입력받고, Next_Permutation을 하기 전에 Sort를 수행한다 2. 구현 - Next_Permutation을 수행하기 전에 반드시 Sort를 수행한다. 입력받는 문자열이 순서대로 들어오지 않기 때문이다(이해가 되지 않는다면 1234와 4321을 출력해보면 안다. 이때의 정답은 24가 올바르다) - Next_Permutation을 수행하면서 ..
문제 링크: https://www.acmicpc.net/problem/2002 2002번: 추월 문제 대한민국을 비롯한 대부분의 나라에서는 터널 내에서의 차선 변경을 법률로 금하고 있다. 조금만 관찰력이 있는 학생이라면 터널 내부에서는 차선이 파선이 아닌 실선으로 되어 있다는 것 www.acmicpc.net 1. 주의할 점 - 각 차량이(문자열) 몇 번째로 터널에 들어갔는지 저장하기 위해 Map(String, Int)을 사용한다 2. 구현 - 들어간 차량을 Map에 저장하고, 나온 차량의 번호를 Map에서 찾아서 Fin[] 배열에 순서대로 넣는다 - 들어간 차량의 순서와 나온 차량의 순서를 비교하여 현재 차량보다 터널에 늦게 들어갔는데 현재 차량보다 터널에서 더 일찍 나온 경우, Pass++한다 #inc..
문제 링크: https://www.acmicpc.net/problem/14226 14226번: 이모티콘 영선이는 매우 기쁘기 때문에, 효빈이에게 스마일 이모티콘을 S개 보내려고 한다. 영선이는 이미 화면에 이모티콘 1개를 입력했다. 이제, 다음과 같은 3가지 연산만 사용해서 이모티콘을 S개 만�� www.acmicpc.net 1. 주의할 점 - BFS를 통해 해결하며, 현재 이모티콘의 길이만큼만 비교하는 배열을 사용하면 틀린 답이 나온다(ex. 872 -> 22가 나와야 한다) 2. 구현 - Check[][]배열을 통해 현재 이모티콘의 길이, 현재 클립보드에 저장되어있는 길이를 비교한다 - 입력으로 1이 주어지는 경우 바로 0을 출력한다 - 현재 이모티콘의 길이가 구하고자 하는 값과 같다면 Result와..
문제 링크: https://www.acmicpc.net/problem/12886 12886번: 돌 그룹 오늘 강호는 돌을 이용해 재미있는 게임을 하려고 한다. 먼저, 돌 세개는 그룹으로 나누어져 있으며 각각의 그룹에는 돌이 A, B, C개가 있다. 강호는 모든 그룹에 있는 돌의 개수를 같게 만들려고 www.acmicpc.net 1. 주의할 점 - BFS, DFS 2가지 방법으로 모두 풀이가 가능하다 - 단계별로 진행했을 때, 현재 돌의 값들이 이전에 나왔는지 검사하는 과정이 필요하다 - 입력 받을 때, 돌의 총합이 3으로 나눠떨어지지 않으면 바로 0을 출력한다 2. 구현 - 입력받는 돌들의 값을 지역변수 벡터 V에 저장하고 DFS를 수행한다 - DFS() 함수를 수행하면서 각 원소의 값이 모두 같다면 A..
문제 링크: https://www.acmicpc.net/problem/14719 14719번: 빗물 첫 번째 줄에는 2차원 세계의 세로 길이 H과 2차원 세계의 가로 길이 W가 주어진다. (1 ≤ H, W ≤ 500) 두 번째 줄에는 블록이 쌓인 높이를 의미하는 0이상 H이하의 정수가 2차원 세계의 맨 왼쪽 위치� www.acmicpc.net 1. 주의할 점 - 해당 블록을 기준으로 오른쪽과 왼쪽을 살핀다 2. 구현 - 해당 블록을 I를 기준으로 0~I-1과 왼쪽에 위치한 I+1~Col블록을 검사하며 왼쪽 블록중 가장 높은 블록과 오른쪽 블록중 가장 높은 블록을 구한다 - 위에서 구한 높이중 작은 높이를 현재 높이만큼 빼면 현재 블록에 최대 얼마의 빗물을 담을 수 있는지 구할 수 있다 #include #..
문제 링크: https://www.acmicpc.net/problem/17825 17825번: 주사위 윷놀이 첫째 줄에 주사위에서 나올 수 10개가 순서대로 주어진다. www.acmicpc.net 1. 주의할 점 - 이동하려는 칸에 다른 플레이어의 말이 있으면 그 판은 무효로 한다 - 1번이 10번 다 이동하는거랑 2~4번이 10번 다 이동하는것은 같다. 이것을 따로 처리해주자(스터디원 曰: 실제 시험에서는 이거 처리 안하면 TLE로 통과 못했다고 한다) - 윷놀이 점수판을 따로 배열로 만든다 2. 구현 - 주사위의 정보를 입력받고 DFS()를 수행하며 어떤 플레이어가 움직일건지 정한다 - DFS()를 수행하면서 위의 빨간글씨 조건을 처리하기 위해 For문에선 i: 0~Min(cnt+1,4)로 설정했다...
문제 링크: https://www.acmicpc.net/problem/17822 17822번: 원판 돌리기 반지름이 1, 2, ..., N인 원판이 크기가 작아지는 순으로 바닥에 놓여있고, 원판의 중심은 모두 같다. 원판의 반지름이 i이면, 그 원판을 i번째 원판이라고 한다. 각각의 원판에는 M개의 정수가 적혀 www.acmicpc.net 더보기 [느낀 점] - 최근에 작성한 코드가 더 깔끔한 느낌 - 이전 코드: WA 상태에서 고친 코드 - 최근 코드: 함수를 통해 각 수행 부분을 분담 → AC 결론: 한번에 제대로 작성하도록 하자 1. 주의할 점 - 원판의 숫자에 0만 남아있다면 더 이상 수행하지 않아도 된다 - 원판에는 4개의 숫자가 아닌 M개의 숫자가 써져있다 2. 구현 - 원판에 대한 정보를 입..
문제 링크: https://www.acmicpc.net/problem/17837 17837번: 새로운 게임 2 재현이는 주변을 살펴보던 중 체스판과 말을 이용해서 새로운 게임을 만들기로 했다. 새로운 게임은 크기가 N×N인 체스판에서 진행되고, 사용하는 말의 개수는 K개이다. 말은 원판모양이고, 하� www.acmicpc.net 1. 주의할 점 - 이동할때 이동하는 말 위의 말은 전부 옮겨야 한다 - 벽면도 파란색과 같은 효과라고 했으므로 배열의 크기를 2씩 늘려서 테두리를 2로 감싸도록 한다 -> 배열 범위 밖 고려 안해도 된다 - Cnt(이동 횟수)가 1000을 넘어가면 -1을 출력한다 - 놓치기 쉬운 부분들은 밑에 빨간색으로 처리했다 2. 구현 - 현재 이동하려는 말 포함해서 위에 있는 말들을 전부..