본문 바로가기
카테고리 없음

프로그래머스 코딩테스트 레벨 2 - 최댓값과 최솟값

by 하랑별 2023. 9. 28.

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

 

먼저, s가 문자열이기 때문에 최소값과 최대값을 찾을수없어서 정수 리스트 형태로 변환해줍니다.

1. .split() 함수를 이용해서 "1 2 3 4" 형태를 "1","2","3","4"의 리스트 형태로 변환하고

- 문자열.split() : 문자열을 ()안에 아무것도 입력하지 않았기 때문에 띄어쓰기 기준으로 나눠서 리스트 형태로 바꿔줍니다.

                          ()안에 무언가를 추가한다면 그것을 기준으로 문자열을 나누게 되는 것입니다. ex) ( ' , ' ) : 콤마 기준으로 

s.split()

 

2. map 함수를 사용해서 문자열.split()을 적용한 리스트의 안의 내용들을 모두 정수로 변환시켜줍니다.

- map( A , B ) : 정수로 변환하기 위해 A 에는 int를 B에는 그것을 적용받기 위한 s.split() 가 들어오게 되는 것입니다.

map(int, s.split()

 

3. 마지막으로 결과를 리스트 형태로 받기 위해 list로 감싸줍니다.

list(map(int, s.split()))

 

이제 리스트에서 최소값(min)과 최대값(max)를 추출하여 return하면 끝입니다.

하지만, return 형태는 "1 4"  이런 형태로 추출해야하기 때문에 문자열 포맷팅 기법인 f-string으로 문자열 앞에 f 를 붙여  return해야 합니다.

ex) f"[값1] {값2} {값3}"

 return f"{min(numbers)} {max(numbers)}"

 

답안 :

def solution(s):
    numbers = list(map(int, s.split()))
    return f"{min(numbers)} {max(numbers)}"