알고리즘2022. 2. 27. 22:01
728x90

* 정렬은 출제 빈도높고, 평균 점수높다고 한다. (출처 : 프로그래머스)

 

--------------------------------------------------------------------------------------------------------------

 

[ 문제 ]

https://programmers.co.kr/learn/courses/30/lessons/42748

 

코딩테스트 연습 - K번째수

[1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3]

programmers.co.kr

 

[ 코드 ]

def solution(array, commands):
    answer = []
    # com을 읽어온다. ex.[2, 5, 3]
    for com in commands:
        a, b, c = com
        ''' (위와 같은 코드)
        a = com[0]   ex. 2
        b = com[1]   ex. 5
        c = com[2]   ex. 3
        '''
        
        # 리스트 슬라이싱을 [시작:끝] 이렇게 했다면 시작~끝-1까지 담김
        arr = array[a-1:b] #2~5번째임. 인덱스에서는 1~4.
        sort_arr = sorted(arr) # 정렬
        
        # answer리스트에 추가해줌
        answer.append(sort_arr[c-1])
        
        #(참고) 이런 식으로 바로 쓰기도 가능!
        #answer.append(sorted(arr)[c-1])
    return answer

 

 

[ 참고자료 ]

파이썬 리스트 슬라이싱, append 가 헷갈린다면 아래 글이 도움될 것!

https://mminky.tistory.com/121

 

[ Python ] 리스트 추가, 삭제, 슬라이싱

* 리스트 추가 .append() * 리스트 원소 삭제 .pop .remove del * 리스트 슬라이싱 1) 이용방법 이렇게 이용하면 (시작)~(끝-1)까지의 항목들이 담긴다. 리스트명[시작:끝] 이런 리스트가 있다고 가정해보자

mminky.tistory.com

 

반응형
Posted by mminky

댓글을 달아 주세요

파이썬2021. 4. 12. 15:09
728x90

* 리스트 추가

.append()

 

* 리스트 원소 삭제

.pop

.remove

del

 

 

* 리스트 슬라이싱

 

1) 이용방법

 

이렇게 이용하면 (시작)~(끝-1)까지의 항목들이 담긴다.

리스트명[시작:]

 

이런 리스트가 있다고 가정해보자.

n_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]

n_list=[]
for i in range(15):
    n_list.append(i)

print(n_list)

 

* 0에서 4까지 분할

[0, 1, 2, 3, 4]

s_list1=n_list[0:5]
print(s_list1)

 

 

2) 간격

 

리스트명[시작::간격]

 

* 간격2로 분할

[2, 4, 6, 8, 10]

#간격 (2부터 11까지 2 간격)
s_list4=n_list[2:11:2]
print(s_list4)

 

 

3) 역순

 

리스트명[시작::-1]

 

* 역순 출력

[10, 9, 8, 7, 6]

#역순출력 (10부터 6까지 역순으로)
s_list5=n_list[10:5:-1]
print(s_list5)

 

* 역순, 간격 2

[10, 8, 6, 4, 2]

#10부터 2까지 역순, 간격2
s_list6=n_list[10:1:-2]
print(s_list6)

 

 

반응형
Posted by mminky

댓글을 달아 주세요