728x90
반응형
SMALL

오늘부터 이직 준비를 시작할 예정이라 코테를 풀어봤다.
아마 내기억에 저번에 못풀었던 문제인 것 같은데, 어거지로 풀었다..ㅠㅠ
완전탐색도 조금이라도 더 효율적으로 풀어야할 것 같아 다른 사람이 푼 풀이를 확인해본다.
1. 내가 푼 풀이
/*
- 중앙: 노란색으로 칠해져있고/ 테두리 1줄은 갈색으로 칠해져있음
- 카펫의 노란색과, 갈색으로 칠해진 격자개수는 기억 , 전체카펫크기는 기억X
- 전체크기는 무조건 yellow 약수보다 커야함
*/
function solution(brown, yellow) {
var answer = [];
let count = brown + yellow
const divides = [];
let divideNum = 1;
while(divideNum <=count ){
if( count % divideNum ===0){
divides.push(divideNum);
}
divideNum+=1;
}
divideNum =1;
const yellowDivides = [];
while(divideNum<=yellow){
if( yellow % divideNum ===0){
yellowDivides.push(divideNum);
}
divideNum+=1;
}
divides.forEach((x)=>{
const a = x;
const b = count/x;
const existed = yellowDivides.some((n)=>n===a-2) && yellowDivides.some(n=>n===b-2);
if(existed && a>2 && b>2){
answer = [a,b];
}
})
return answer;
}
2. 다른사람의 풀이
function solution(brown, red) {
var answer = [];
for (var i = 3; i <= (brown+red)/i; i++) {
var x = Math.floor((brown+red)/i);
if( (x-2)*(i-2)=== red) {
break;
}
}
return [x,i];
}
내가 저렇게 길게 푼걸 한 for문으로 해결하셨네,, 이해가 간다.
전체크기의 row,col은 무조건 3이상이어야하기때문에 for문으로 찾으면서 안쪽 yellow 격자의 크기를 바로 비교하면 하나의 포문으로 찾을수있네,,
오늘의 수확 : 저번에 못풀었던 문제를 풀었음.
LIST
'CS > 알고리즘' 카테고리의 다른 글
| [월간 코드 챌린지 시즌3] PGS lv2. n^2 배열자르기 (0) | 2025.09.08 |
|---|---|
| [월간 코드 챌린지 시즌2] PGS lv2. 괄호 회전하기 (0) | 2025.09.07 |
| [미완]알고리즘 및 자료구조 개념 복습 (자코스테 자료 참고) (0) | 2024.11.13 |
| [백트래킹] PGS 여행경로 (0) | 2024.05.20 |
| [백트래킹] DFS 소수 찾기 (0) | 2024.05.14 |