c# 최댓값과 최솟값

sh·2023년 11월 28일
0

문제 설명
문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요.
예를들어 s가 "1 2 3 4"라면 "1 4"를 리턴하고, "-1 -2 -3 -4"라면 "-4 -1"을 리턴하면 됩니다.

로직

  1. String.Split()을 통해 공백을 기준으로 값을 나눠준다
  2. 그 값을 각각 string[]에 넣어준다.
  3. string 상태로는 값을 비교하기 쉽지 않으므로 int 형태로 parsing 해준다.
  4. 그 후 Array.Sort()함수를 통해 오름차순으로 배열을 정리한다.
  5. 첫번째 숫자와 마지막 숫자 사이에 공백을 넣은 string을 만들고 리턴한다.

완성된 코드

using System;

public class Solution {
    public string solution(string s) {
        string answer = "";
        string[] words = s.Split(' ');
        int[] wordsToInt = new int[words.Length];
        int idx = 0; 
        foreach(string str in words){
            wordsToInt[idx] = int.Parse(str);
     
            idx++;
      
        }
      
        Array.Sort(wordsToInt);
        answer = $"{wordsToInt[0]} {wordsToInt[words.Length-1]}";
        return answer;
    }
}

보완할 점
string[]와 int[] 두가지 배열을 만들어야 한다는 점이 조금 비효율적인 것 같음
아예 처음부터 int 배열에 넣을 수 있는 방법을 찾으면 좋을 것 같다.

0개의 댓글