본문 바로가기

프로그래머스 코딩테스트 연습 Lv1

프로그래머스 코딩테스트 연습 - 모든문제 Lv1 [ K번째수 ]

[문제 설명]

- 배열의 i~ j 까지 짜른거에서 k번째 수 찾기.

- 짜르고 소트하고 k번째꺼 리턴하는 함수 짜기.

- array[]랑 i j k가 담긴 commands[] 가 2차원 배열로 주어진다.

 

[제한사항]

- array의 길이는 1 이상 100 이하.

- array의 각 원소는 1 이상 100 이하

- commands의 길이는 1 이상 50 이하

- commands의 각 원소는 길이가 3.

 

[입출력 예]

 

[내풀이]

1. 뽑는다.

2. sort한다.

3. k 번째를 찾는다.

 

[내공부]

과연 공부할게 있을까 싶었는데 역시 있구나 한줄짜리가 ㅋㅋ 아..

[map]

- list(map(함수, 리스트)) 방식으로 쓰는거임 (tuple도 된다.)

위에서 있는거로 보면 함수는 lambda x: ~ 고, 리스트는 commands 임을 볼 수 있다.

이렇게 쓰면 리스트의 요소를 지정된 함수로 처리해주는 함수 이다. 그러니까.. for문이 안보이는거 보면 lambda 방식으로 commands를 처리하기 위해 list의 map함수를 사용했다는 뜻이 된다.

 

[lambda]

함수를 처리하는 거같음 위에꺼 공부하다보니 이해됐음 그냥 x안에 특정 변수가 들어가서 함수처럼 쓰는거 같다.

 

* 나는 암기에 대해선 머리가 나빠서 여기서 공부한 map과 lambda 를 절대로 기억하지 못한다. 

  대신 난 써봤다 라거나 응용에 대해서는 웬만해선 까먹지 않는다.

내가 기억하는건

1. 다음에 어디서 이걸 봤을때 아 이거 했었던거다.

2. 이거 이럴때 했었던거 같다.

3. 대강 이런 형태이고 이런 뜻이였다.

정도이다.. 그냥 친구가 혹시 함수같은거 다 기억하냐고 하길래 여기다 적어본다. 그래서 반드시 남의 코드를 보고 내공부를 찾아서 하는이유가 이것이다.. 다음에 나왔을땐 이런게 있었던거 기억하기 위해.