Search
Duplicate
📒

[Programmers] 05-2. 카펫

상태
완료
수업
Algorithm Solving
주제
Programmers
4 more properties
참고

문제해설

NOTE
입력 값 ⇒ 정수(갈색 타일), 정수(노랑색 타일)
출력 값 ⇒ 전체 타일의 가로와 세로의 값

문제 로직고민

NOTE
노랑색 타일의 값이 24인경우, 24*1, 12*2, 4*3 의 방식으로 놓여질 수 있다.
카펫의 경우 가로길이가 세로보다 길어야 하므로, 반대 상황은 생각하지 않는다.
갈색 타일의 경우 노랑색의 가로와 세로값이 있다면 계산할 수 있다.
가로*2 + 세로*2 + 4 ⇒ 갈색 타일의 개수

작성코드

NOTE
class Solution { public int[] solution(int brown, int yellow) { int[] answer = new int[2]; for(int i =1; i<(int)Math.sqrt(yellow)+1; i++){ if(yellow % i == 0 && yellow/i * 2 + i * 2 + 4 == brown){ answer[0] = yellow/i + 2; answer[1] = i + 2; break; } } return answer; } }
Java
복사

다른사람 풀이

NOTE
class Solution { public int[] solution(int brown, int red) { for(int i=1; i<=red; i++) { if(red%i==0 && (red/i+i)*2+4==brown) { return new int[] {red/i+2, i+2}; } } return null; } }
Java
복사
예전에는 빨강색이었나 보다.
공식은 동일한것 같다.