프로그래머스 고득점 KIT 4

프로그래머스 고득점 kit 풀기 #정렬

1. K번째 수 i,j,k가 입력되면, 전체 배열에서 i~j까지의 수를 정렬한 뒤 k번째 수를 구하면 된다. 내 코드 def solution(array, commands): answer = [] for i,j,k in commands: answer.append(list(sorted(array[i-1:j]))[k-1]) return answer 이게 조금 더 정석적인 코드라고 생각하지만 추천순 1위에는 lambda 함수를 이용한 한 줄 짜리 코드가 있었다. 그래서 나도 한 줄로 짜봤다. 한 줄 짜리 def solution(array, commands): return [sorted(array[i-1:j])[n-1] for i, j, n in commands] 하지만 이 전에도 말했든 별로 직관적이지 않아 그..

프로그래머스 고득점 kit 풀기 #스택/큐

1. 기능개발 큐를 사용하면 충분히 해결할 수 있는 문제이다. 다른 사람의 코드를 보다보면, 극단적으로 짧은 코드가 많은 추천 수를 받는걸 확인할 수 있다. 너무 좋은 코드이지만 이해가 어려워 나는 아래와 같은 형태의 조금 더 직관적인 코드를 선호하는 편이다. (컴팩트하게 못짜서 그러는거 맞음ㅋㅋ) 내 코드 from collections import deque def solution(progresses, speeds): answer = [] progresses = deque(progresses) speeds = deque(speeds) while progresses: result = 0 while len(progresses) > 0 and progresses[0] >= 100: progresses.pop..

프로그래머스 고득점 kit 풀기 #해시

1. 완주하지 못한 선수 : 두 리스트에 중복하여 존재하지 않는 값을 찾는 문제이다. 내 풀이 def solution(participant, completion): player = {} for p in participant: try: player[p] += 1 except: player[p] = 1 for c in completion: player[c] -=1 for i in player: if player[i]: return i 베스트 풀이 import collections def solution(participant, completion): answer = collections.Counter(participant) - collections.Counter(completion) return list(an..

프로그래머스 SQL 고득점 kit

1. SELECT 부분 - ORDER BY 옵션에는 ASC 와 DESC가 있다. 내림차순이 4글자인걸 기억하자. - WHERE 사용법 - WHERE column = 'data' : 동일할 때 - WHERE column != 'data' : 다를 때 - WHERE column is NULL : NULL값일 때 - WHERE column is not NULL : NULL이 아닐 때 2. SUM, MAX, MIN 부분 - 갯수 세기 - SELECT COUNT(*) FROM DATE_TABLE; : 이렇게 세고자 하는 대상에 COUNT()를 사용해주면 된다. - SELECT COUNT( DISTINCT * ) FROM DATA_TABLE; : 이렇게 하면 유일값 기준으로 갯수를 세준다. 3. GROUP BY 부..

728x90