완전탐색
-
BOJ 16986 인싸들의 가위바위보 자바(java) 풀이 랭크 : 골드3 백준 16986 인싸들의 가위바위보 문제 정리 모두가 동시에 경기를 진행하는 대신 일대일 경기를 여러 번 진행해 누가 우승했는지 판단한다. 참가자 3명이서 동시에 경기를 진행할 때, 우승자를 정하기 위한 구체적인 방식은 다음과 같다 2.1 게임 시작전 우승을 위해 필요한 승수와 경기 진행 순서를 미리 합의 한다. 2.2 두 사람이 무승부가 날 경우 진행 순서상 뒤의 사람이 이긴 것으로 간주한다. 2.3 이전 경기의 승자와 이전 경기에 참여하지 않은 사람이 경기를 진행해 승자를 결정한다. 2.4 특정 사람이 미리 합의된 승수를 달성할 때 까지 2.3을 반복한다. 2.5 합의된 승수를 최초로 달성한 사람이 우승한다. 상대방 두명이 낼..
[순열, 완전탐색] 백준 16986 인싸들의 가위바위보 자바(java) 풀이BOJ 16986 인싸들의 가위바위보 자바(java) 풀이 랭크 : 골드3 백준 16986 인싸들의 가위바위보 문제 정리 모두가 동시에 경기를 진행하는 대신 일대일 경기를 여러 번 진행해 누가 우승했는지 판단한다. 참가자 3명이서 동시에 경기를 진행할 때, 우승자를 정하기 위한 구체적인 방식은 다음과 같다 2.1 게임 시작전 우승을 위해 필요한 승수와 경기 진행 순서를 미리 합의 한다. 2.2 두 사람이 무승부가 날 경우 진행 순서상 뒤의 사람이 이긴 것으로 간주한다. 2.3 이전 경기의 승자와 이전 경기에 참여하지 않은 사람이 경기를 진행해 승자를 결정한다. 2.4 특정 사람이 미리 합의된 승수를 달성할 때 까지 2.3을 반복한다. 2.5 합의된 승수를 최초로 달성한 사람이 우승한다. 상대방 두명이 낼..
2020.04.08 -
BOJ 16985번 Maaaaaaaaaze 문제 자바(java) 풀이 난이도: 골드3 BOJ 16985번 Maaaaaaaaaze 문제정리 3차원 미로 탈출 대회 개최 5x5 크기의 판이 5개 주어진다. 하얀색 칸은 참가자가 들어갈 수 있는 칸, 검은 칸은 못들어가는 칸이다. 참가자는 주어진 판들을 시계 or 반시계 방향으로 자유롭게 회전할 수 있다. 뒤집을 수는 없다. 회전을 완료한 후 참가자는 판 5개를 쌓는다. 쌓는 순서는 참가자 마음대로 한다. 입구는 참가자가 임의로 선택한 꼭지점. 출구는 입구와 면을 공유하지 않는 꼭짓점 참가자 중에서 본인이 설계한 미로를 가장 적은 이동 횟수로 탈출한 사람이 승리한다. 입구에서 출구로 도달할 수 있는 방법이 없는 경우 탈출이 불가능 하다. 문제 풀이 이 문제는 ..
[BFS, 순열] 16985번 Maaaaaaaaaze 자바(java) 풀이BOJ 16985번 Maaaaaaaaaze 문제 자바(java) 풀이 난이도: 골드3 BOJ 16985번 Maaaaaaaaaze 문제정리 3차원 미로 탈출 대회 개최 5x5 크기의 판이 5개 주어진다. 하얀색 칸은 참가자가 들어갈 수 있는 칸, 검은 칸은 못들어가는 칸이다. 참가자는 주어진 판들을 시계 or 반시계 방향으로 자유롭게 회전할 수 있다. 뒤집을 수는 없다. 회전을 완료한 후 참가자는 판 5개를 쌓는다. 쌓는 순서는 참가자 마음대로 한다. 입구는 참가자가 임의로 선택한 꼭지점. 출구는 입구와 면을 공유하지 않는 꼭짓점 참가자 중에서 본인이 설계한 미로를 가장 적은 이동 횟수로 탈출한 사람이 승리한다. 입구에서 출구로 도달할 수 있는 방법이 없는 경우 탈출이 불가능 하다. 문제 풀이 이 문제는 ..
2020.04.01 -
BOJ 16987번 계란으로 계란치기 문제 자바(java) 풀이 랭크 : 실버3 백준 16987번 계란으로 계란치기 문제 정리 계란으로 계란을 치는 경우 다음과 같은 점들을 고려한다. 1.1 계란에는 내구도와 무게가 정해져 있다. 1.2 계란으로 서로를 치면 계란의 내구도는 상대 계란의 무게 만큼 깎이게 된다. 1.3 내구도가 0이 되는 순간 계란이 깨진다. 계란을 왼쪽 부터 차례로 들어 한 번씩만 다른 계란을 쳐서 최대한 많은 계란을 깨려고 한다. 계란을 치는 과정은 다음과 같다. 3.1 가장 왼쪽 계란을 든다. 3.2 손에 든 계란으로 깨지지 않은 계란중 하나를 친다. 만약 손에 든 계란이 깨졌거나 깨지지 않은 계란이 없다면 아무일도 하지 않는다. 3.3 최근에 든 계란의 바로 오른쪽 계란을 들고 반..
[DFS] 백준 16987번 계란으로 계란치기 자바(java) 풀이BOJ 16987번 계란으로 계란치기 문제 자바(java) 풀이 랭크 : 실버3 백준 16987번 계란으로 계란치기 문제 정리 계란으로 계란을 치는 경우 다음과 같은 점들을 고려한다. 1.1 계란에는 내구도와 무게가 정해져 있다. 1.2 계란으로 서로를 치면 계란의 내구도는 상대 계란의 무게 만큼 깎이게 된다. 1.3 내구도가 0이 되는 순간 계란이 깨진다. 계란을 왼쪽 부터 차례로 들어 한 번씩만 다른 계란을 쳐서 최대한 많은 계란을 깨려고 한다. 계란을 치는 과정은 다음과 같다. 3.1 가장 왼쪽 계란을 든다. 3.2 손에 든 계란으로 깨지지 않은 계란중 하나를 친다. 만약 손에 든 계란이 깨졌거나 깨지지 않은 계란이 없다면 아무일도 하지 않는다. 3.3 최근에 든 계란의 바로 오른쪽 계란을 들고 반..
2020.04.01 -
BOJ 1018번 체스판 다시 칠하기 문제 자바(java) 풀이 랭크 : 골드3 백준 1018번 체스판 다시 칠하기 문제 정리 MxN 크기의 보드가 있다. 흰색과 검은색의 정사각형으로 이루어져 있다. 8x8 체스판을 만드려고 한다. 변을 공유하는 두 개의 사각형은 다른 색으로 칠해져야 한다. -> 체스판을 색칠하는 경우는 2가지 MxN 크기의 보드에서 8x8 크기의 체스판으로 잘라서 색을 다시 칠하려 한다. 다시 칠해야 하는 정사각형의 최소 개수를 구하여라 문제 접근 완전 탐색만 할 줄 안다면 풀 수 있는 문제입니다. 간단하게 생각해야 합니다. 4중 for문으로 답을 구해낼 수 있습니다. 8x8로 자를 수 있는 가능한 경우 모두 잘라본다 자를 때 마다 체스판과 다른 문자 갯수를 찾아서 저장하고 최소 값과..
[BOJ] 백준 1018번 체스판 다시 칠하기 자바(java) 풀이 (완전탐색)BOJ 1018번 체스판 다시 칠하기 문제 자바(java) 풀이 랭크 : 골드3 백준 1018번 체스판 다시 칠하기 문제 정리 MxN 크기의 보드가 있다. 흰색과 검은색의 정사각형으로 이루어져 있다. 8x8 체스판을 만드려고 한다. 변을 공유하는 두 개의 사각형은 다른 색으로 칠해져야 한다. -> 체스판을 색칠하는 경우는 2가지 MxN 크기의 보드에서 8x8 크기의 체스판으로 잘라서 색을 다시 칠하려 한다. 다시 칠해야 하는 정사각형의 최소 개수를 구하여라 문제 접근 완전 탐색만 할 줄 안다면 풀 수 있는 문제입니다. 간단하게 생각해야 합니다. 4중 for문으로 답을 구해낼 수 있습니다. 8x8로 자를 수 있는 가능한 경우 모두 잘라본다 자를 때 마다 체스판과 다른 문자 갯수를 찾아서 저장하고 최소 값과..
2020.03.15 -
sw expert academy 1244 최대 상금 문제 자바(java) 풀이 난이도 : D3 sw expert academy 1244 최대 상금 문제정리 숫자판이 주어질때 정해진 횟수내에서 서로의 자리를 교환할 수 있다. 숫자판의 위치에 따라 가중치가 부과된다. (오른쪽 끝이 1원, 왼쪽으로 갈수록 10의 배수로 커진다.) 반드시 정해진 횟수만큼 교환을 해야한다. 동일한 위치의 교환이 중복되어도 된다. 정해진 숫자만큼 교환을 진행했을때 가장 큰 금액을 계산해라 문제풀이 이 문제는 greedy로 풀 수 없습니다. greedy로 풀게되면 답이 나오는 것도 있지만 안나오는 경우도 있습니다. 그러므로 모든 경우를 탐색해야 합니다. 모든 경우를 탐색하기 위해 자리를 모두 바꿔봅니다. dfs 함수를 통해 가능한 ..
[SWEA] 1244번 최대상금 자바 풀이(그리디X 완전탐색O)sw expert academy 1244 최대 상금 문제 자바(java) 풀이 난이도 : D3 sw expert academy 1244 최대 상금 문제정리 숫자판이 주어질때 정해진 횟수내에서 서로의 자리를 교환할 수 있다. 숫자판의 위치에 따라 가중치가 부과된다. (오른쪽 끝이 1원, 왼쪽으로 갈수록 10의 배수로 커진다.) 반드시 정해진 횟수만큼 교환을 해야한다. 동일한 위치의 교환이 중복되어도 된다. 정해진 숫자만큼 교환을 진행했을때 가장 큰 금액을 계산해라 문제풀이 이 문제는 greedy로 풀 수 없습니다. greedy로 풀게되면 답이 나오는 것도 있지만 안나오는 경우도 있습니다. 그러므로 모든 경우를 탐색해야 합니다. 모든 경우를 탐색하기 위해 자리를 모두 바꿔봅니다. dfs 함수를 통해 가능한 ..
2020.03.03 -
sw expert academy 1952번 수영장 자바(java) 풀이 모의 SW 역량테스트 수영장 sw expert academy 1952번 수영장 문제정리 이용권 1일 이용권 : 하루 이용 1달 이용권: 한달 이용. 매달 1일 부터 시작 3달 이용권: 3달 이용. 매달 1일 시작. 1년 이용권: 매년 1월 1일 시작 각 이용권의 요금과 각 달의 이용계획이 주어진다. 가장 적은 비용으로 수영장을 이용할 수 있는 방법과 그 비용을 출력해라 문제풀이 이 문제는 완전탐색 문제입니다. 탐색해야 하는 경우도 많지 않습니다. 1년 이용권의 경우는 한 번만 검사하면 되기 때문에 마지막에 따로 한 번만 검사합니다. 재귀를 통해 모든 경우를 탐색하고 그 달의 이용일이 0인 경우 비용을 더해주지 않으면 됩니다 dfs(c..
[SWEA] 모의 SW 역량 테스트 :: 1952번 수영장 자바(java) 풀이sw expert academy 1952번 수영장 자바(java) 풀이 모의 SW 역량테스트 수영장 sw expert academy 1952번 수영장 문제정리 이용권 1일 이용권 : 하루 이용 1달 이용권: 한달 이용. 매달 1일 부터 시작 3달 이용권: 3달 이용. 매달 1일 시작. 1년 이용권: 매년 1월 1일 시작 각 이용권의 요금과 각 달의 이용계획이 주어진다. 가장 적은 비용으로 수영장을 이용할 수 있는 방법과 그 비용을 출력해라 문제풀이 이 문제는 완전탐색 문제입니다. 탐색해야 하는 경우도 많지 않습니다. 1년 이용권의 경우는 한 번만 검사하면 되기 때문에 마지막에 따로 한 번만 검사합니다. 재귀를 통해 모든 경우를 탐색하고 그 달의 이용일이 0인 경우 비용을 더해주지 않으면 됩니다 dfs(c..
2020.03.02