📌프로그래머스 87390
💡풀이
- 정수 List를 만든다.
- for문으로 주어진 left ~ right 까지만 조건을 걸어 반복한다.
- 각 길이가 n인 행렬의 x, y 좌표를 구한다고 생각한다.
- x 좌표는 i / n, y 좌표는 i % n. 둘 중 더 큰 값을 넣는다.
- 해당 좌표에 들어가있는 값은 (x or y) + 1이다.
public int[] n2제곱배열자르기(int n, long left, long right)
{
List<int> list = new List<int>();
// 2차원 배열이라고 생각하고 x, y 좌표를 찾는다.
// 해당 좌표의 x, y 값 중 더 큰 값을 추가.
for(long i = left; i <= right; i++)
{
int x = (int)(i / n);
int y = (int)(i % n);
int value = x > y ? x + 1 : y + 1;
list.Add(value);
}
return list.ToArray();
}
자르고 뭐고 할 거 없이 x, y 좌표를 찾아 x, y 중 더 큰 값을 넣으면 되는 문제였다.
'프로그래머스' 카테고리의 다른 글
H-Index (C#) (0) | 2024.06.06 |
---|---|
할인 행사 (C#) (1) | 2024.06.05 |
주사위 게임 2 (C#) (0) | 2024.06.03 |
수 조작하기 2 (C#) (0) | 2024.06.03 |
9로 나눈 나머지 (C#) (0) | 2024.06.03 |