728x90
SMALL

using System;
using System.Collections.Generic;

public class Solution {
    public int[] solution(int[] array, int[,] commands) {
        int[] answer = new int[commands.GetLength(0)];
        List<int> list = new List<int>();
        int k = 0;
        
        for(int i=0;i<commands.GetLength(0);i++)
        {
            for(int j=commands[i,0]-1;j<commands[i,1];j++)
            {
                list.Add(array[j]);

                // 자르기
            }


            list.Sort(); // 소팅하기
            answer[i] = int.Parse(list[commands[i,2]-1+k].ToString());
            // i에서 부터 k번째 수를 집어넣는다.            


            for(int p = 0;p<list.Count;p++)
            {
                list[p] = 0;
            }

// 소팅한 게 반영이 안되게 하려면 / for문을 돌리기 위해서는 리스트를 다 0으로 초기화해야함. 이러면 마이너스가 있을 때 문제 생길 듯. Abs로하고 소팅하면 되려나
            k += commands[i,1]-commands[i,0]+1;
        }
        return answer;
    }
}

 

 

 

///

 

 

 

using System;
using System.Collections.Generic;
public class Solution {
    public int[] solution(int[] array, int[,] commands) {
        int a2 = commands.Length / 3;
        int[] answer = new int[a2];
        List<int> list = new List<int>();

            for (int b = 0; b < a2; b++)
            {
               list.Clear();
                int i = commands[b, 0];
                int j = commands[b, 1];
                int k = commands[b, 2];
                
                 for (int a = i - 1; a < j; a++)
                {
                    list.Add(array[a]);
                }
                
                list.Sort();
                answer[b] = list[k-1];
            }
        return answer;
    }
}
728x90

설정

트랙백

댓글