본문 바로가기
*Algorithm/Programmers_Level2

[programmers] 프로그래머스 Level2 최대값과 최솟값(파이썬 Python)

by codinguser 2021. 8. 29.

프로그래머스 Level2 최대값과 최솟값 파이썬
(주)그렙

 

[programmers] 프로그래머스 Level2 최대값과 최솟값

(파이썬 Python)

 

* 문제출처 : 프로그래머스 코딩 테스트 연습, 알고리즘 문제

 

 

 

1) 문제

z


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

 

코딩테스트 연습 - 최댓값과 최솟값

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

programmers.co.kr

 

 

 

 

 

2) 코드


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
def solution(s):
    cur_min = 2200000000
    cur_max = -2200000000
    
    s_numbers = s.split(" ")
 
    for i in range(len(s_numbers)):
        s_number = s_numbers[i]
        cur_int = int(s_number)
        
        if(cur_int < cur_min):
            cur_min = cur_int
            
        if(cur_max < cur_int):
            cur_max = cur_int
            
    return str(cur_min) + " " + str(cur_max)
cs

 

 

 

 

 

 

 

3) 풀이 과정


(1)

정수의 범위가 정해져 있지 않아 21억을 올림하여

22억으로 설정

 

(2)

입력 받은 s을 공백기준으로 분리 후 리스트로 타입변환 후

 

최댓값과 최솟값으로 업데이트를 하기 위해

 

cur_max = (음수) 22억

cur_min = (양수) 22억

 

으로 설정

 

그래야만, 부호가 반대이기에 각 요소들의 값들을 업데이트 시 max 값과 min에 대입이 가능

 

 

 

 

 

 

 

 

 

 

4) 정리 노트


만약 위의 내용이 이해가 안간다면 아래와 같은 간단한 코드 이해

 

1
2
3
4
5
6
7
8
9
numbers = [1254502030]
max_num = -1
 
for i in range(len(numbers)):
    if(numbers[i] > max_num):
        max_num = numbers[i]
 
 
print(max_num)
cs

 

 

댓글