본문 바로가기

코딩테스트

[프로그래머스] 최솟값과 최댓값 with golang

반응형

 

문제 설명

문자열 s 안에는 공백으로 구분된 숫자들이 저장되어 있습니다. 이 문자열에서 나타나는 숫자 중 최소값과 최대값을 찾아 "(최소값) (최대값)" 형태의 문자열을 반환하는 함수 solution을 구현하는 문제입니다.

예를 들어, 문자열 s가 "1 2 3 4" 라면 "1 4"를 리턴하고, "-1 -2 -3 -4" 라면 "-4 -1"을 리턴하면 됩니다.

제한 조건

s에는 둘 이상의 정수가 공백으로 구분되어 있습니다.

 

문제 해결

Go 언어를 사용하여 이 문제를 해결하였습니다. 코드는 다음과 같습니다.

package main

import (
	"fmt"
	"sort"
	"strconv"
	"strings"
)

func solution(s string) string {
	arrStr := strings.Split(s, " ")
	arrInt := []int{}

	for _, str := range arrStr {
		num, _ := strconv.Atoi(str)
		arrInt = append(arrInt, num)
	}

	sort.Ints(arrInt)

	min := strconv.Itoa(arrInt[0])
	max := strconv.Itoa(arrInt[len(arrInt)-1])
	return min + " " + max
}

func main() {
	r := solution("1 2 3 4")
	fmt.Println(r)

	r = solution("-1 -2 -3 -4")
	fmt.Println(r)

	r = solution("-1 -1")
	fmt.Println(r)
}

 

코드 설명

1. 먼저 strings.Split 함수를 사용하여 공백을 기준으로 문자열을 분리합니다.
2. 분리된 문자열을 숫자로 변환하여 arrInt라는 슬라이스에 추가합니다.
3. sort.Ints 함수를 사용하여 arrInt 슬라이스를 정렬합니다.
4. 정렬된 슬라이스에서 첫 번째 값과 마지막 값을 찾아 문자열로 변환한 뒤, 둘을 공백으로 구분하여 반환합니다.


반응형