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
- 개발자 특강
- Vue3
- 모던 자바스크립트 TIL
- Frontend Roadmap
- 프로그래머스 데브코스 프론트엔드
- 백준 node.js
- K_Digital Training
- 프로그래머스 K_Digital Training 프론트엔드
- 프로그래머스 K_Digital Training
- 모던 자바스크립트 Deep Dive
- 모던 자바스크립트 Deep Dive TIL
- frontend roadmap study
- KDT 프로그래머스 데브코스 프론트엔드
- 백준 js
- TypeScript 문법 소개
- 리팩토링 회고
- react 프로젝트 리팩토링
- KDT 프로그래머스
- 인프런 자바스크립트 알고리즘 문제풀이
- 프로그래머스 데브코스
- useRef 지역 변수
- 우테캠 회고록
- useEffect return
- 모던 javascript Deep Dive
- Vue3 Router
- react customHook 예시
- 머쓱이
- 프로그래머스 데브코스 프론트엔드 TIL
- 투포인터알고리즘 js
- 모던 자바스크립트 딥다이브
Archives
- Today
- Total
프론트엔드 개발자의 기록 공간
[프로그래머스 JavaScript] 카펫 본문
🚩 프로그래머스 Level2 카펫 -> 완전탐색
📖 문제 설명
카펫의 중앙에는 노란색, 테투리는 갈색으로 칠해져 있는 카펫이 있다.
노란색의 격자 수와 갈색의 격자 수가 주어질때, 총 카펫의 가로, 세로의 길이를 구하면 된다.
💡 1. (Tip) 카펫의 최소 높이는 3이라는 점이다. (위의 그림을 보면 이해된다.)
2. 공식 : 갈색과 노란색의 합을 임의의 높이로 나눌때 나오는 높이와 가로 값을 토대로
(가로-2) * (높이-2) = 노란색 격자 수 라면, 현재 높이, 가로의 길이를 찾은 것이다.
(-2를 해서 곱한 이유는 양끝의 테투리가 갈색이기 때문에 빼고 계산해준다)
👉 소스 코드 ⏰시간복잡도 O(n)
function solution(brown, yellow) {
var answer = [];
let sum = brown + yellow;
//카펫의 최소높이는 3부터이다.(위아래 갈색, 가운데가 노란색이기 때문에)
for(let height=3; height<=brown; height++){
//임의의 높이로 나눌때 나머지가 없을경우만
if(sum % height === 0){
//가로길이
let weight = sum / height;
//테두리를 제외한 길이를 구해야하기 때문에 각각 -2해준뒤 곱셈
//결과가 yellow와 같다면 해당 높이와 길이 리턴
if( (height-2) * (weight-2) === yellow){
return [weight, height];
}
}
}
return answer;
}
👨💻 코드 설명
위의 문제 설명에서 임의의 높이로 나눈 가로값과 높이로 노란색 격자수를 비교해준다 하였다.
왜냐하면 노란색 격자수가 24라면, 노란색 격자의 가로, 높이가 12*2, 8*3, 6*4 등등 형태가 존재 한다.
따라서 임의의 높이로 나누었을때 나머지가 0일때만의 경우에서 그 임의의 (가로-2) * (높이-2)가 노란색 격자 수와
일치하면 정답이 된다.
728x90
'알고리즘_JS > 프로그래머스_Level2' 카테고리의 다른 글
[프로그래머스 JavaScript] 프린터 (0) | 2021.07.22 |
---|---|
[프로그래머스 JavaScript] 조이스틱 (0) | 2021.07.22 |
[프로그래머스 JavaScript] 타켓 넘버 (0) | 2021.07.22 |
[프로그래머스 JavaScript] 오픈채팅방 (0) | 2021.07.22 |
[프로그래머스 JavaScript] 기능개발 (0) | 2021.07.21 |
Comments