Notice
Recent Posts
Link
- Today
- Total
hye-log
[프로그래머스]최댓값과 최솟값(Python) 본문
0. 문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/12939
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
728x90
'CodingTest > Programmers' 카테고리의 다른 글
[프로그래머스]최솟값 만들기(Python) (0) | 2022.09.16 |
---|---|
[프로그래머스]JadenCase 문자열 만들기(Python) (0) | 2022.09.15 |
[프로그래머스]성격 유형 검사하기(Python) (0) | 2022.09.06 |
[프로그래머스]124 나라의 숫자(Python) (0) | 2022.08.26 |
[프로그래머스]H-Index(Python) (0) | 2022.08.23 |
Comments