반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- TS
- 프로그래머스 신규아이디추천
- 자료구조
- TypeScript
- node.js
- Javascript 정렬
- 프로그래머스 자바스크립트
- JavaScript
- 자바스크립트 알고리즘
- 정렬 알고리즘
- js 알고리즘
- 키패드누르기풀이
- 프로그래머스 자바스크립트 풀이
- Javascript sort
- binary search
- 깃허브
- 좌표거리구하기
- 프로그래머스
- mysql스키마
- next.js
- 자바스크립트 정렬
- 티스토리챌린지
- 정규표현식문제
- 타입스크립트
- 맨해튼거리예제
- 자바스크립트 배열
- 맨해튼거리
- MySQL
- 알고리즘
- 오블완
Archives
- Today
- Total
FE PARADISE
프로그래머스 카펫 - 자바스크립트 풀이 본문
반응형
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
완전탐색을 활용하는 문제임을 알고 완전탐색을 어떻게 사용하지 생각하다가 시간을 다 까먹어버렸다 ㅠㅡㅠ
풀이
노란 카펫의 수 = (가로 - 2) * (세로 - 2) 임을 활용해야 한다.
function solution(brown, yellow) {
let answer = [];
for(let i = 3; i< brown + yellow; i++){
let width = Math.floor((brown + yellow) / i);
if(((width - 2) * (i - 2)) === yellow && width >= i && (brown + yellow) % i === 0) answer = [width, i];
}
return answer;
}
for문을 돌면서 순차적으로 세로를 가정한다. 가운데 노란 카펫이 위치하는 것을 생각해보면 세로는 3보다는 클 것이므로 i = 3 으로 시작한다.
가로는 (갈색 카펫 수 + 노란 카펫 수 ) / 높이 이다.
for(let i = 3; i< brown + yellow; i++)
let width = Math.floor((brown + yellow) / i);
다음과 같은 조건이 성립되는 가로, 세로 길이가 정답이 된다.
조건1: 노란 카펫 수가 (가로 - 2) * (세로 - 2)
조건2: 가로가 세로 길이보다 길거나 같다.
조건3: (갈색 카펫 수 + 노란 카펫 수) / 세로 의 나머지는 0이어야 한다.
if(((width - 2) * (i - 2)) === yellow && width >= i && (brown + yellow) % i === 0)
answer = [width, i];
이 후, answer을 반환해주면 끝이다.
return answer;
반응형
'자료구조 & 알고리즘' 카테고리의 다른 글
프로그래머스 구명보트 - 자바스크립트 풀이 ⛵︎ (0) | 2024.12.11 |
---|---|
프로그래머스 귤 고르기 - 자바스크립트 풀이 🍊 (0) | 2024.12.11 |
프로그래머스 다음 큰 숫자 - 자바스크립트 풀이 (0) | 2024.12.08 |
프로그래머스 피보나치 수 - 자바스크립트 풀이 (0) | 2024.12.04 |
프로그래머스 짝지어 제거하기 - 자바스크립트 풀이 (0) | 2024.12.01 |