반응형
문제분석
brown 과 yellow의 블록갯수를 주어집니다.
brown은 테두리 색깔이고, yellow는 테두리를 제외한 내부의 색깔입니다.
목표: 카펫의 행과 열의 갯수 구해주기
우선 전체 블록갯수를 구할수있습니다. brown+yellow 로 구할수있죠.
카펫의 전체블록갯수는 행X열로 구할수있습니다.
행, 열을 구하려면 전체블록수/행의갯수 = 열의갯수 가 가능한부분을 모두 구하자.
여기서 전체블록수%행의갯수가 0이 아닌경우는 모두 빼야한다. (실수인값은 모두 제외해야함)
이렇게 모인 행,열 가능한 후보자들을 모두 모아 내부갯수가 yellow와 일치한지구한다.
카펫의 테두리를제외한 내부의 갯수는 (행-2)*(열-2)값으로 자동적으로 구해진다.
문제풀이
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
import java.util.*;
class Solution {
public int[] solution(int brown, int yellow) {
int[] answer = {};
int blocks = brown+yellow;
List<int[]> candidate = new LinkedList<>();
for(int i=3;i<=Math.sqrt(blocks);i++){
if(blocks%i==0){
candidate.add(new int[]{blocks/i,i});
}
}
for(int[] data:candidate){
if((data[0]-2)*(data[1]-2)==yellow){
answer=data;
break;
}
}
return answer;
}
}
|
cs |
반응형
'알고리즘 > 프로그래머스 Level2' 카테고리의 다른 글
[프로그래머스,자바] Level2: K진수에서 소수 개수 구하기 (0) | 2022.01.18 |
---|---|
[프로그래머스,Java] Level2:큰 수 만들기 (업데이트) (0) | 2021.12.25 |
[프로그래머스,Java] Level2: H-Index (0) | 2021.12.17 |
[프로그래머스,Java] Level2:다리를 지나는 트럭 (0) | 2021.12.15 |
[프로그래머스,Java] Levle2: 위장 (0) | 2021.12.08 |