728x90
반응형
https://programmers.co.kr/learn/courses/30/lessons/84325
using System;
using System.Collections.Generic;
using System.Linq;
public class Solution {
public string solution(string[] table, string[] languages, int[] preference) {
string answer = "";
string[] _job = new string[] { "SI", "CONTENTS", "HARDWARE", "PORTAL", "GAME" };
string[,] _table = new string[5,5];
for (int i = -1; ++i < 5;)
{
string[] words = table[i].Split(' ');
Array.Reverse(words);
for (int j = -1; ++j < 5;)
_table[i, j] = words[j];
}
List<KeyValuePair<int, string>> result = new List<KeyValuePair<int, string>>();
for (int i = -1; ++i < 5;)
{
int temp = 0;
for (int j = -1; ++j < 5;)
{
for (int x = -1; ++x < languages.Length;)
if (_table [i, j] == languages[x])
{
temp += (j + 1) * preference[x];
break;
}
}
result.Add(new KeyValuePair<int, string>(temp, _job[i]));
}
result = result.OrderBy(x => x.Value).OrderByDescending(x => x.Key).ToList();
answer = result[0].Value;
return answer;
}
}
음 고정값이 많아서 직업은 미리 배열로 선언해두고
table을 공백으로 걸러서 새 _table 배열로 선언 [ 이 부분에서 _job을 받아와도 되긴 하겠다. ]
_table 선언할 때 편하게 하기 위해서 미리 Reverse하구
최종 값을 정렬할 때 편하게 할라구 리스트로 하긴 할 건데 KeyValuePair<int, string>로 최종 점수, 직군으로
마지막에 직군 정렬하고 점수 정렬한 뒤 첫 직군을 반환
반응형
'프로그래머스_C# > Level_1' 카테고리의 다른 글
[프로그래머스 C#] Level 1 Tips (0) | 2021.09.11 |
---|---|
[프로그래머스 C#] 로또의 최고 순위와 최저 순위 (0) | 2021.09.10 |
[프로그래머스 C#] 숫자 문자열과 영단어 (0) | 2021.09.09 |
[프로그래머스 C#] 음양 더하기 (0) | 2021.09.09 |
[프로그래머스 C#] 소수 만들기 (0) | 2021.09.08 |