본문 바로가기

완전탐색3

[프로그래머스] (완전탐색) 카펫 갈색격자의 수가 brown, 노란격자의 수가 yellow 일때 카펫의 면적은 brown + yellow 이고 면적의 약수가 카펫의 가로,세로 길이가 된다. brown :10, yellow : 2 => 면적 : 12, 카펫가로 세로 후보군은 [1,12], [2,6], [3,4], [4,3], [6,2], [12, 1] 카펫에 노란격자는 무조건 1이상이고, 가로가 세로보다 길거나 같다는 조건이 있으므로 가능한 후보군은 [4,3] 하나뿐이다. (최소 가로/세로 길이는 3) 전체 면적까지 루프를 역순으로 돌리고, (가로-2) * (세로-2) = 노란격자의 수가 나오는 경우의 수를 찾는 문제 class Solution { public int[] solution(int brown, int yellow) { int[.. 2021. 3. 27.
[프로그래머스] (완전탐색) 소수 찾기 먼저 주어진 숫자형 문자열로 만들 수 있는 모든 숫자를 찾고 그 다음 만들어진 숫자에서 소수를 골라낸다. "17" 로 만들 수 있는 숫자는 [1, 7, 17, 71] 이고 여기서 소수는 [7, 17, 71] "011" 로 만들 수 있는 숫자는 [0, 1, 10, 11, 101, 110] 이고 여기서 소수는 [11, 101] 그림에서 보는 것 처럼 배열에서 루프를 돌며 숫자를 하나씩 뽑고, 남은 배열을 저장하면서 들고다니는 함수를 만들어서 계속 재귀호출하며 남은 배열이 없으면 전체 조합을 완료한 것으로 본다. public void pick(List arr, String picked, List permArr) { for (int i = 0; i < arr.size(); i++) { // 입력받은 배열에서 하.. 2021. 3. 27.
[프로그래머스] (완전탐색) 모의고사 단순히 문제 그대로... 완전탐색 했다. 세명의 찍는 패턴을 바탕으로 정답수를 구해서 별도의 배열에 저장하고, 그 중에 최대 정답수와 일치하는 것을 정답배열에 다시 담았다. 수포자가 3명이라 가능한 방법같은데.. 여러명이면 다른방법으로 해야 될 것 같다. import java.util.*; class Solution { public int[] solution(int[] answers) { int[] supo1 = {1,2,3,4,5}; int[] supo2 = {2,1,2,3,2,4,2,5}; int[] supo3 = {3,3,1,1,2,2,4,4,5,5}; int supo1Correct = 0; int supo2Correct = 0; int supo3Correct = 0; ArrayList cnt = .. 2021. 3. 25.
반응형