[프로그래머스] 파이썬 코딩테스트 연습 LV1(제일 작은 수 제거하기, 가운데 글자 가져오기)

728x90

1 .제일 작은 수 제거하기

 

문제 설명

 

정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다.

 

내 풀이

def solution(arr):
    arr.remove(min(arr))
    if len(arr) == 0:
        return [-1]
    else:
        return arr

 

2. 가운데 글자 가져오기

 

문제 설명

 

단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.

 

내 풀이

def solution(s):
    a = len(s) // 2
    if len(s) % 2 != 0:
        return s[int(a)]
    else:
        return s[a-1:a+1]

여러가지가 생각나다보니 뭔가 잡다하고 지저분한 코드가 나오는 거 같다

 

다른 사람 풀이

def string_middle(str):
    return str[(len(str)-1)//2 : len(str)//2 + 1]

 

def string_middle(str):
    a = len(str)
    if a % 2 == 0 :
        a = (a-2) / 2
    else :
        a = (a-1) / 2
    return str[int(a) : -int(a)]

 

728x90