hye-log

[프로그래머스]최댓값과 최솟값(Python) 본문

CodingTest/Programmers

[프로그래머스]최댓값과 최솟값(Python)

iihye_ 2022. 9. 14. 18:29

0. 문제 링크

https://school.programmers.co.kr/learn/courses/30/lessons/12939

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

1, 문제 소개

1) 주어진 문자열에서 공백으로 숫자 분리하기

2) 최소값, 최대값 순서대로 리턴하기

 

2. 입출력

# input
s = '1 2 3 4'

# output
return = '1 4'

 

3. 코드

1) 첫 번째 코드

def solution(s):
    s_split = s.split(' ')                     # 문자열 분리

    min_value = int(s_split[0])                # 최소값
    max_value = int(s_split[0])                # 최대값

    for i in range(1, len(s_split)):
        std_value = int(s_split[i])
        if min_value > std_value:              # 최소값 판단
            min_value = std_value
        elif max_value < std_value:            # 최대값 판단
            max_value = std_value

    return str(min_value) + ' ' + str(max_value)

 

실행 결과

문자열을 분리하고 음수를 처리하기 위해서 정수로 변환하는 과정을 거침

최소값과 최대값을 판단할 때 if 문으로 직접 비교함

 

2) 두 번째 코드

def solution(s):
    s_split = list(map(int, s.split(' ')))                 # 문자열 분리 후 정수화
    return str(min(s_split)) + ' ' + str(max(s_split))

 

실행 결과

map 함수를 이용하여 split 함수의 결과인 list의 요소를 int 형으로 변환함

map 함수의 결과는 list를 사용해서 list로 만들어줌

list 안에 있는 요소들이 int 형이기 때문에 min, max 함수를 이용하여 결과를 쉽게 불러올 수 있음

 

4. 알게된 점

1) list(map(함수, 리스트))

리스트를 함수를 사용하여 매핑하고, 결과를 다시 리스트로 만들어줄 수 있음

# 리스트의 요소를 int로 바꾸기
a = [1.2, 2.5, 3.7, 4.6]
a = list(map(int, a))				# a의 요소를 int로 매핑하고 다시 list화
print(a)
>> [1, 2, 3, 4]

# range를 이용하여 list에 객체 넣기
a = list(map(str, range(10)))		# 0부터 9까지 숫자를 str로 매핑하고 다시 list화
print(a)
>> ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']

# input()으로 입력받아 list로 바꾸기
a = list(map(int, input().split()))	# 입력받은 값을 int로 매핑하고 다시 list화
print(a)
>> 10 20
>> [10, 20]

 

5. Github

https://github.com/iihye/Algorithm/blob/main/Programmers/max_min.py

 

GitHub - iihye/Algorithm

Contribute to iihye/Algorithm development by creating an account on GitHub.

github.com

 

728x90
Comments