TIL#63 Python 예제연습(6)

Dasom·2020년 9월 13일
0

python

목록 보기
36/50
post-thumbnail

위코드에 오고 나서 2주 넘게 Django를 공부하느라 python을 공부할 시간이 많이 없었다. 그래서 오늘은 파이썬에 대해 다시 한번 기억도 하면서 위코드에서 매일 오전10시반에 1시간씩 주어지는 코드카타를 위해서 프로그래머스 문제를 풀었다. 알고리즘적 사고를 더 기르기 위해서🤗
위코드가 개강하기 전 한달동안 파이썬을 공부할 때 코드업사이트의 기초100제를 다 풀었고 프로그래머스 1단계 문제도 반정도 풀었었는데 위코드에 와서 간간히 너무 어려운 것들을 할 때에는 나름 쉴겸 힐링겸 프로그래머스 문제를 1문제씩 풀었었다. 현재 프로그래머스 1단계에 23문제를 푼상태고 오늘 한문제씩 풀면서 해결한 문제들은 밑에 블로깅을 할 예정이다. 앞으로도 간간히 계속해서 풀어나갈 예정이다😄

프로그래머스 링크

제일 작은 수 제거하기

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

def remove_min(arr):
    if len(arr) <= 1:  # 빈배열이거나 정수가 1개 들은 경우 [-1] 리턴
        return [-1]
    arr.remove(min(arr))  # 파이썬 내장함수 min을 이용해 최소값을 제거함
    return arr

정수 내림차순으로 배치하기

함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.

def solution(n):
    n_list = [i for i in str(n)]  # 리스트컴프리헨션. n을 문자열로 바꿔서 하나씩 리스트에 추가함
    n_list.sort(reverse=True)  # 내림차순으로 리스트 정렬
    return ''.join(n_list)   # 리스트를 정수로 변환

자연수 뒤집어 배열로 만들기

자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다.

def solution(n):
    n_list = [int(i) for i in str(n)]
    n_list.reverse()  # 리스트 뒤집기
    return n_list

k번째 수

배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다. 예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면 array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다.
1에서 나온 배열을 정렬하면 [2, 3, 5, 6]입니다. 2에서 나온 배열의 3번째 숫자는 5입니다. 배열 array, [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때, commands의 모든 원소에 대해 앞서 설명한 연산을 적용했을 때 나온 결과를
배열에 담아 return 하도록 solution 함수를 작성해주세요.

def solution(array, commands):
    answer = []
    for one_list in commands:  # 이중리스트이기 때문에 리스트1개씩 반복
        new_array = array[one_list[0]-1:one_list[1]]
        new_array.sort()
        answer.append(new_array[one_list[2]-1])
    return answer
profile
개발자꿈나무🌲

0개의 댓글