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
- Counting
- Data Structure
- 자바
- sorting
- greedy
- string
- Tree
- Stack
- geometry
- hash table
- Number Theory
- implement
- database
- simulation
- two pointers
- Class
- bit manipulation
- SQL
- dynamic programming
- Matrix
- java
- array
- Method
- 코딩테스트
- 파이썬
- 코테
- Binary Tree
- 구현
- Binary Search
- Math
Archives
- Today
- Total
코린이의 소소한 공부노트
[프로그래머스/Lv.2] 카펫 본문
1. Input
1) 카펫의 갈색 격자의 수 brown
2) 카펫의 노란색 격자의 수 yellow
3) 카펫은 테두리 1줄은 갈색이고, 안쪽은 노란색으로 칠해져 있다.
2. Output
1) 카펫의 가로, 세로 크기를 순서대로 담은 int 배열
3. Constraint
1) 갈색 격자의 수 brown은 8 이상 5,000 이하인 자연수
2) 노란색 격자의 수 yellow는 1 이상 2,000,000 이하인 자연수
3) 카펫의 가로 길이는 세로 길이와 같거나, 세로 길이보다 길다.
4. Example
Input: brown=24, yellow=24 -> Output: {8,6}
설명: 안쪽에 노란색 격자가 24개가 있고, 노란색을 둘러싼 테두리 1줄의 갈색 격자가 24개라면 가로 8, 세로 6의 크기를 가진 카펫이다.
5. Code
1) 첫 코드(2022/11/29)
int[] answer = new int[2]; // 가로 >= 세로
int total = brown+yellow;
for(int i=total; i>=Math.sqrt(total) ; i--){
if(total%i==0){
answer[0]=i; answer[1]=total/i;
if((answer[0]-2)*(answer[1]-2)==yellow) break;
} // if
} // for i
return answer;
'코딩테스트 풀이 > JAVA' 카테고리의 다른 글
[LeetCode/Easy] 326. Power of Three (0) | 2022.11.29 |
---|---|
[프로그래머스/Lv.2] 영어 끝말잇기 (0) | 2022.11.29 |
[프로그래머스/Lv.2] 다음 큰 숫자 (0) | 2022.11.29 |
[프로그래머스/Lv.2] 이진 변환 반복하기 (0) | 2022.11.28 |
[프로그래머스/Lv.1] 폰켓몬 (0) | 2022.11.26 |