[프로그래머스][LV.2] 최댓값과 최솟값 | python3
2025. 2. 11. 09:56ㆍ프로그래머스/LV.2
문제 링크: 최댓값과 최솟값
문제 설명
문제 설명
문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요.
예를들어 s가 "1 2 3 4"라면 "1 4"를 리턴하고, "-1 -2 -3 -4"라면 "-4 -1"을 리턴하면 됩니다.
제한사항
- s에는 둘 이상의 정수가 공백으로 구분되어 있습니다.
문제 풀이
문자열 s를 ' '기준으로 나누어서 정수화시킨다음 리스트로 만들어서 max값과 min값 구
내코드
def solution(s):
int_s= list(map(int, s.split()))
max_s=max(int_s)
min_s=min(int_s)
answer = f'{str(min_s)} {str(max_s)}'
return answer
더보기
다른사람풀이
def solution(s):
t = []
if s[0] != "-":
s = "+" + s
for i in range(0, len(s)):
t += [s[i]]
for i in range(0, len(t)):
if t[i] == " " and t[i+1] != "-":
t.insert(i+1, "+")
for i in range(1, len(t)):
if t[len(t)-i] == " " and t[len(t)+1-i] != "-":
t.insert(len(t)+1-i, "+")
break
print(t)
result = []
midcount1 = ""
midcount2 = ""
for i in range(len(t)):
if t[i] == "-":
for j in range(i+1, len(t)):
if t[j] != " ":
midcount1 = midcount1 + t[j]
if j == len(t)-1:
result += [-int(midcount1)]
midcount1 = ""
break
elif t[j] == " ":
print(midcount1)
result += [-int(midcount1)]
midcount1 = ""
break
elif t[i] == "+":
for j in range(i+1, len(t)):
if t[j] != " ":
midcount2 = midcount2 + t[j]
if j == len(t)-1:
result += [int(midcount2)]
midcount2 = ""
break
elif t[j] == " ":
print(midcount2)
result += [int(midcount2)]
midcount2 = ""
break
print(result)
resultmax = int(result[0])
resultmin = int(result[0])
for i in range(len(result)):
if resultmax < result[i]:
resultmax = result[i]
for i in range(len(result)):
if resultmin > result[i]:
resultmin = result[i]
return "%s %s" % (resultmin, resultmax)
풀어쓴풀이
'프로그래머스 > LV.2' 카테고리의 다른 글
[프로그래머스][LV.2] 피보나치 수 | python3 (0) | 2025.02.11 |
---|---|
[프로그래머스][LV.2] 최솟값 만들기 | python3 (0) | 2025.02.11 |
[프로그래머스][LV.2] 숫자의 표현 | python3 (0) | 2025.02.07 |
[프로그래머스][LV.2] 다음 큰 숫자 | python3 (0) | 2025.02.06 |
[프로그래머스][LV.2] 땅따먹기 | python3 (0) | 2025.02.06 |