문제에서 제시한 것처럼 2차원 배열을 입력받아서 메서드에 넣고 싶었는데
어떻게 해야할지 모르겠어서 메인함수에 테스트 케이스를 정해둔 형태를 바탕으로 작성했다
모든 가로 길이가 각각의 세로 길이보다 길게 만들어주고
가로 길이 중 가장 큰 값과 세로 길이 중 가장 큰 값을 곱해서 반환하게 했다
반환값을 따로 출력하진 않는다
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
namespace Rectangle
{
class Program
{
static void Main()
{
int[,] arr =
{
{ 60, 50 },
{ 30, 70 },
{ 60, 30 },
{ 80, 40 }
};
new Solution().solution(arr);
}
}
public class Solution
{
public int solution(int[,] sizes)
{
int answer = 0;
//여기서 부터 코드 작성
int maxWideth;
int maxHeight;
//가로의 길이를 저장할 배열, 세로의 길이를 저장할 배열 따로 만들기
int[] wideths = new int[sizes.GetLength(0)];
int[] heights = new int[sizes.GetLength(0)];
for (int j = 0; j < sizes.GetLength(0); j++)
{
wideths[j] = sizes[j, 0];
heights[j] = sizes[j, 1];
int t;
//가로의 길이가 세로의 길이보다 길게 통일해준다(회전)
if (heights[j] > wideths[j])
{
t = heights[j];
heights[j] = wideths[j];
wideths[j] = t;
}
}
//answer=가로 길이 중 제일 큰 것*세로 길이 중 제일 큰 것
maxWideth = wideths.Max();
maxHeight = heights.Max();
answer = maxWideth * maxHeight;
return answer;
}
}
}
참고
https://cosmosproject.tistory.com/541
C# : Array Max, Min, Sum, Average (Array의 최대값, 최소값, 합, 평균 얻기)
Array에 적용할 수 있는 함수 중 Max, Min, Sum이 있습니다. 바로 예시를 봅시다. using System; using System.Linq; class MyProgram { static void Main() { int[] test_arr = { 1, 2, 3, 4, 5 }; Console.WriteLine(test_arr.Max()); Console.Write
cosmosproject.tistory.com
https://school.programmers.co.kr/learn/courses/30/lessons/86491
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
'코딩 테스트 > 프로그래머스' 카테고리의 다른 글
C# 옹알이 (1) (0) | 2023.01.21 |
---|---|
C# 완주하지 못한 선수 (0) | 2023.01.20 |