[ Programmers / CodingTest / Python ] 최댓값과 최솟값

황승환·2022년 1월 15일
0

Python

목록 보기
93/498

문제 설명

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

제한 조건

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

입출력 예

s		return
"1 2 3 4"	"1 4"
"-1 -2 -3 -4"	"-4 -1"
"-1 -1"		"-1 -1"

접근 방법

이 문제는 형 변환이 핵심인 것 같은 문제였다. 우선 문자열 형태로 입력된 숫자들을 split()을 통해 리스트로 저장해준다. 이 상태로 sort()를 하게 되면 이 리스트는 문자열형 리스트이기 때문에 음수가 들어있을 경우 제대로 정렬되지 않는다. 그렇기 때문에 이 리스트를 정수형으로 바꿔주고 결과 문자열을 만들 때에는 다시 문자열형으로 변환하여 더해주어야 한다.

  • 정답을 저장할 문자열 answer를 선언한다.
  • s를 list로 바꿔 s_list 배열에 저장한다.
  • s_list를 int형으로 다시 저장할 배열 result를 선언한다.
  • s_list를 순회하는 i에 대한 for문을 돌린다.
    -> result에 i를 int형으로 넣어준다.
  • result를 오름차순 정렬한다.
  • answer에 result[0]과 result[-1]을 string으로 바꾸어 공백을 두고 더한다.
  • answer를 반환한다.

solution.py

def solution(s):
    answer = ''
    s_list=list(s.split())
    result=[]
    for i in s_list:
        result.append(int(i))
    result.sort()
    answer+=(str(result[0])+' '+str(result[-1]))
    return answer

profile
꾸준함을 꿈꾸는 SW 전공 학부생의 개발 일기

0개의 댓글