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 |
Tags
- 17070번
- Unity
- 플레이어 이동
- 유니티
- 수학숙제
- 백준 c++ 2870번
- Beakjoon
- 오브젝트 풀링
- Lv.3
- 2870번 수학숙제
- 2870번 c++
- 코테
- 백준 c++ 2468번
- 백준 17070번
- c++
- 프로그래머스
- 백준 1103번
- dfs
- 백준
- 백준 1103번 게임
- C#
- 2870번 수학숙제 c++
- 2870번
- 백준 17070번 c++
- 코딩테스트
- 백준 1103번 c++
- Algorithm
- Lv2
- 백준 2870번
- 2468 c++
Archives
- Today
- Total
주녘공부일지
[프로그래머스 C#] Lv.2 카펫 본문
https://school.programmers.co.kr/learn/courses/30/lessons/42842
1. 정답코드 및 핵심 아이디어, 유의사항
구해야 하는 가로 값 x, 세로 값 y로 놓고 수식을 세워서 풀면 되는 문제
매개변수로 주어지는 테두리 영역 brown과 테두리영역을 제외한 영역 yellow에 따른 수식은 아래와 같음
1) 각각 가로 * 2 값과 세로 * 2 값에 겹치는 영역인 꼭짓점의 개수 4를 빼줌
- brown = 2x + 2y - 4
brown = 2(x + y - 2)
brown / 2 = x + y - 2
brown / 2 + 2 = x + y (조건1. 더한 값)
2) 테두리 안의 영역은 결국 직사각형 형태일테니 테두리 부분을 제외한 영역의 부피를 구함
- yellow = (x - 2) * (y - 2)
yellow = xy - 2x - 2y + 4
yellow = xy - (2x + 2y - 4)
yellow = xy - brown
yellow + brown = xy (조건2. 곱한 값)
위에서 구한 두가지 조건식을 만족하는 x, y 값을 찾으면 됨 (단, x >= y )
+ brown은 8이상, yellow는 1이상이므로 x, y >= 3
using System;
public class Solution
{
public int[] solution(int brown, int yellow)
{
int addValue = (brown / 2) + 2; // 가로 + 세로
int xy = brown + yellow; // 가로 * 세로
int y = 0, x = 0;
// y값은 x값보다 클 수 없음 (y 최소값 3)
for (y = 3; y <= addValue / 2; y++)
{
// 조건에 따른 x, y값 세팅 (더한 값)
x = addValue - y;
// 조건을 만족하는지 체크 (곱한 값)
if (xy == x * y)
break;
}
return new int[2] { x, y };
}
}
'CodingTest > Programmers Lv.2' 카테고리의 다른 글
[프로그래머스 C#] Lv.2 올바른 괄호 (0) | 2023.12.04 |
---|---|
[프로그래머스 C#] Lv.2 괄호 회전하기 (0) | 2023.12.04 |
[프로그래머스 C#] Lv.2 큰 수 만들기 (1) | 2023.11.22 |
[프로그래머스 C#] Lv.2 n^2 배열 자르기 (1) | 2023.11.20 |
[프로그래머스 C#] Lv.2 롤케이크 자르기 (0) | 2023.11.17 |