문제 : https://school.programmers.co.kr/learn/courses/30/lessons/12939 난이도 : Lv.2 풀이 def solution(s): newList = [] s = s.split(" ") for i in s: newList.append(int(i)) answer = " ".join([str(min(newList)), str(max(newList))]) return answer 그래도 레벨2 문제인데 아무래도 좀 더러운 것 같아서 줄여보고자 노력을 했다.. 하여.. 아래처럼 간단히 줄일 수 있다. 다른 풀이 def solution(s): s = list(map(int, s.split())) return str(min(s)) + " " + str(max(s))
문제 : https://school.programmers.co.kr/learn/courses/30/lessons/12930 난이도 : Lv.1 풀이 def solution(s): # '단어'기준 splitedWords = s.split(" ") # 공백 기준 분리 for i in range(len(splitedWords)): word = list(splitedWords[i]) # 글자 하나하나 분리 for k in range(len(word)): if k % 2 == 0: # 짝수번째 알파벳은 대문자 word[k] = word[k].upper() elif k % 2 == 1: # 홀수번째 알파벳은 소문자 word[k] = word[k].lower() splitedWords[i] = "".join(word..
문제 : https://school.programmers.co.kr/learn/courses/30/lessons/42862# 난이도 : Lv.1 풀이 def solution(n, lost, reserve): newReserve = [r for r in reserve if r not in lost] newLost = [l for l in lost if l not in reserve] for nr in newReserve: if nr - 1 in newLost: newLost.remove(nr - 1) elif nr + 1 in newLost: newLost.remove(nr + 1) answer = n - len(newLost) return answer 이미 카테고리에서 Greedy 알고리즘이라고 나와있다..