알고리즘/programmers

[ 프로그래머스 / 파이썬 ] 프로그래머스 LEVEL 1 풀이

jungeun960 2021. 3. 2. 18:46

프로그래머스

# 가운데 글자 가져오기

def solution(s):
    answer = ''
    if len(s)%2 == 1:
        answer = s[len(s)//2]
    else:
        answer = s[len(s)//2-1 : len(s)//2+1 ]
    return answer

 

# 같은 숫자는 싫어

def solution(arr):
    answer = [arr[0]]
    for i in range(1,len(arr)):
        if answer[-1] != arr[i]:
            answer.append(arr[i])
    return answer

 

# 수박수박수박수박수박수?

def solution(n):
    answer = ''
    for i in range(1,n+1):
        if i%2 != 0:
            answer+="수"
        else:
            answer+="박"
    return answer

 

+ (GOOD) 다른 사람 풀이 

def solution(n):
    return "수박"*(n//2) + "수"*(n%2)

 

# 문자열 내 마음대로 정렬하기

  • Point. 문자열 정렬
  • 처음 접근 방법 -> sorted(strings, key=lambda x:x[n]) -> n번째 숫자가 같은 경우 사전순 정렬 안됨
    • 사전순 정렬을 해주고 n번째 기준으로 정렬해주면됨
def solution(strings, n):
    return sorted(sorted(strings), key=lambda x:x[n])

출력값 비교해보기

 

+ (GOOD) 다른 사람 풀이  미.쳤.다.

  • n번째 수를 글자의 앞에 붙인다음, 정렬함
def solution(strings, n):
    answer = []
    for i in range(len(strings)):
        strings[i] = strings[i][n] + strings[i]
    strings.sort()
    for j in range(len(strings)):
        answer.append(strings[j][1:])
    return answer
반응형