Algorithm

[알고리즘 문제 풀이] - 최댓값과 최솟값

Jesse 2020. 12. 20. 02:20

요즘 시간 날때마다 프로그래머스에서

 

문제를 하나씩 풀어보고 있습니다.

 

 

문제 내용은 그리 길지 않네요. 

 

이상하게 문제 내용이 길고 제한 사항이 많으면 시작부터 좀 꺼려 집니다.... 다른 문제를 고를껄 그랬나

 

하지만 이 문제는 짧고 원하는게 명확하네요.

 

주어진 string에서 최소값과 최대값만 찾아서 리턴하면 되는군요

 

 

<생각의 과정>

 

1. string 안에서 숫자들을 뽑아내서 리스트를 만드는게 먼저일것 같다

 

2. 어떻게 숫자 사이 사이에 있는 공백들을 제거할것인가?

 

3. loop을 돌려도 되지만 그냥 split()을 쓰자.

 

4. 그 후에 리스트에서 최소값과 최대값을 찾는건 매우 쉬움

 

 

<풀이>

def solution(s):
    s_list = s.split()
    num_list = [int(x) for x in s_list] 
    maxi, mini = max(num_list), min(num_list)
    return str(mini) + ' ' + str(maxi)

정말 짧네요. 

 

우선은 split()을 써서 숫자만 빼낸 리스트를 만들었습니다.

 

하지만 리스트 안에 있는 숫자들은 int 형식이 아닌 str 형식이죠

 

그래서 안에 있는 숫자들을 모두 integer 형식으로 바꾸는 작업을 한번 거쳤습니다.

 

사실 이 부분은 그냥 map을 써도 괜찮습니다.

 

그리고 나서는 max와 min 함수를 이용해서 최대값과 최솟값을 찾은 후

 

원하는 포멧대로 리턴 했어요.

 

결과는