//구글콘솔 광고 추가가
무작위로 K개의 수 뽑기 문제

 

내 코드
using System;
using System.Collections.Generic;
using System.Linq;
public class Solution {
    public int[] solution(int[] arr, int k) {
        var answer = new List<int>(arr).Distinct().ToList();
        var answerArr = new List<int>();
        for(int i =0; i < k; i++)
        {
            if(i < answer.Count)
                answerArr.Add(answer[i]);
            else
                answerArr.Add(-1);
        }
        return answerArr.ToArray();
    }
}

 

728x90
전국 대회 선발 고사 문제

 

내 코드
using System;
using System.Collections.Generic;
using System.Linq;
public class Solution {
    public int solution(int[] rank, bool[] attendance) {
        int answer = 0;
        Dictionary<int, int> dic = new Dictionary<int, int>();
        for (int i = 0; i < rank.Length; i++)
        {
            if (attendance[i])
                dic.Add(rank[i], i);
        }
        List<int> list = dic.Keys.ToList();
        list.Sort();
        answer = dic[list[0]] * 10000 + dic[list[1]] * 100 + dic[list[2]];
        return answer;
    }
}
728x90
수열과 구간 쿼리 2 문제

 

내 코드
using System;
using System.Collections.Generic;
using System.Linq;
public class Solution {
    public int[] solution(int[] arr, int[,] queries) {
        var answer = new List<int>();
        for (int i = 0; i < queries.GetLength(0); i++)
        {
            int min = arr.Max()+1;
            for (int j = queries[i, 0]; j <= queries[i, 1]; j++)
            {
                if (arr[j] > queries[i, 2] && arr[j]< min)
                    min = arr[j];
            }
            if (min == arr.Max() + 1) min = -1;
            answer.Add(min);
        }
        return answer.ToArray();
    }
}
728x90
코드 처리하기 문제

 

내 코드
using System;

public class Solution {
    public string solution(string code) {
        string answer = "";
        int mode =0;
        bool isOne =false;
        for(int i =0; i < code.Length; i++)
        {
            if(code[i] == '1')
            {
                if(isOne == false)
                {
                    isOne = true;
                    mode = 1;
                }
                else if(isOne == true)
                {
                    isOne = false;
                    mode = 0;
                }
            }
            if(mode == 0)
            {
                if(code[i] != '1')
                {
                    if(i %2 == 0)
                       answer += code[i]; 
                }
            }
            if(mode == 1)
            {
                if(code[i] != '1')
                {
                    if(i %2 != 0)
                       answer += code[i]; 
                }
            }
        }
        if(answer.Length ==0)
            answer = "EMPTY";
        return answer;
    }
}
728x90
정수를 나선형으로 배치하기 문제

 

내 코드
using System;
//+1
public class Solution {
    public int[,] solution(int n) {
        int[,] answer = new int[n,n];
        string [,] answer2 = new string[n,1];
        int num = 1;
        for (int x = 0; x < n; x++)
        {
            for (int y = 0; y < n; y++)
            {
                answer[x,y] = -1;
            }
        }

        for (int i = 0; i < n; i++)
        {
            //왼 >> 오
            for (int r = i; r < n - i; r++)
            {
                if (answer[i,r] == -1)
                    answer[i,r] = num++;
            }
            //위 >> 아래
            for (int d = 1; d < n - i; d++)
            {
                if (answer[d,n - i - 1] == -1)
                    answer[d,n - i - 1] = num++;
            }
            //오 >> 왼
            for (int l = n - i - 1; 0 <= l; --l)
            {
                if (answer[n - i - 1,l] == -1)
                    answer[n - i - 1,l] = num++;
            }
            //아래 >> 위
            for (int u = n - i - 1; 0 < u; --u)
            {
                if (answer[u - 1,i] == -1)
                    answer[u - 1,i] = num++;
            }
        }

        for(int x =0; x < n; x++)
        {
            for(int y =0; y < n; y++)
            {
                if (y != 0) answer2[x, 0] += ",";
                
                answer2[x, 0] += + answer[x, y];
            }
        }
        return answer;
    }
}

 

728x90

+ Recent posts