분류 전체보기 (109) 썸네일형 리스트형 [Python | 파이썬] 다리를 지나는 트럭 (프로그래머스 STACK/QUEUE) [Python | 파이썬] 다리를 지나는 트럭 (프로그래머스 STACK/QUEUE) 현재 다리에 올라가있는 truck을 저장하는 bridge 배열을 다리에 올라갈 수 있는 길이만큼 0으로 채워 생성한다. 매초마다 bridge의 맨위의 원소는 pop된다. 만약 현재 truck_weights의 최상단에 있는 원소의 무게와 bridge의 무게의 합이 다리가 최대로 견딜 수 있는 무게인 weight보다 작거나같다면 bridge에 이 트럭을 추가한다. 그렇지 않다면 bridge에는 0을 추가한다. 더보기 def solution(bridge_length, weight, truck_weights): bridge = [0] * bridge_length sec = 0 while bridge : bridge.pop(0) .. [Python | 파이썬] 프린터 (프로그래머스 STACK/QUEUE) [Python | 파이썬] 프린터 (프로그래머스 STACK/QUEUE) 큐의 맨위에 위치한 작업의 우선순위가 제일 높다면 그 작업을 처리한다. 처리된 작업이 언제처리되는지 알고 싶은 작업 location이라면 반복문을 종료한다. 맨위에 위치한 작업의 우선순위가 제일 높지 않다면 그 작업을 맨뒤로 보낸다. 그리고 모든 반복문에서 location의 위치를 앞으로 한칸씩 당겨주고, location이 0보다 작다면 현재 queue의 길이-1의 인덱스로 설정한다. 더보기 from collections import deque def solution(priorities, location): answer = 0 q = deque(priorities) cnt = 0 while q: if max(q) == q[0]: q... [Python | 파이썬] 기능개발 (프로그래머스 STACK/QUEUE) [Python | 파이썬] 기능개발 (프로그래머스 STACK/QUEUE) 앞에서부터 배포할 수 있으므로 현재까지 배포된 기능의 개수를 세는 변수 count와 현재 시행에서 배포될 수 있는 기능을 세는 변수 tmpcount를 선언한다. 그리고 전체 기능이 배포가 완료될까지 반복하면서, 각 index의 progresses[i]를 speeds[i]를 더한 값으로 갱신한다. 그리고 하나라도 100이 넘는다면 배포가 되는 것이므로 answer에 tmpcount를 추가해준다. 더보기 def solution(progresses, speeds): answer = [] length = len(progresses) count = 0 tmpcount = 0 while count != length: tmpcount = 0 f.. [Python | 파이썬] 완주하지 못한 선수 (프로그래머스 HASH) [Python | 파이썬] 완주하지 못한 선수 (프로그래머스 HASH) 딱 1명의 선수만 완주하지 못했기 때문에 참가자의 수-1만큼 반복문을 돌면서, 현재 인덱스에 해당하는 선수의 이름인 participant[index]와 completion[index]가 다르다면 participant[index] 선수가 완주하지 못한 선수이다. 만약 반복문이 끝날 때까지 다른 선수가 없다면 맨 마지막에 있는 participant[num-1] 선수가 완주하지 못한 선수이다. 더보기 def solution(participant, completion): answer = '' num = len(participant) participant.sort() completion.sort() for index in range(num-1.. [Python | 파이썬] 체육복 (프로그래머스 GREEDY) [Python | 파이썬] 체육복 (프로그래머스 GREEDY) 여분의 체육복을 가져온 학생 중 체육복을 잃어버린 학생은 자신의 체육복을 입어야하므로 reserve 중 lost에 있는 원소를 먼저 제거해 set rst로 여분의 체육복을 가져오고 자신의 체육복을 잃어버리지 않아 빌려 줄 수 있는 학생들을 구한다. 그리고 set los 에서도 그러한 학생들을 지워준다. 앞에서부터 res에 있는 학생의 앞에 있는 학생이 los에 있는지 확인하고 los에서 지워준다. 만약 앞에 있는 학생이 los에 없다면 뒤에 있는 학생이 los에 있는지 확인하고 los에서 지워준다. 이 문제는 그리디이기 때문에 앞에있는 학생부터 먼저 확인하고 체육복을 빌려줘야 최적의 답을 구할 수 있다. 더보기 def solution(n, l.. [Python | 파이썬] 조이스틱 (프로그래머스 GREEDY) [Python | 파이썬] 조이스틱 (프로그래머스 GREEDY) 조이스틱을 위, 아래로 움직이는 횟수는 알파벳 변환횟수와 관련이 있다. 현재 인덱스의 문자를 A로 변환하는 최소 횟수는 현재 인덱스의 문자가 A에서 더 가까운지 Z에서 더 가까운지에 따라 두 알파벳과의 ord 차이 중 최소값을 이용하여 구할 수 있다. ord(i)-ord('A') : A ~ 타겟 알파벳까지의 차이 ord('Z') - ord(i) + 1 = Z에서 A로 1칸만에 이동할 수 있으므로 타겟 알파벳 ~ Z까지의 차이 + 1 (Z ~ A까지의 차이) 그리고 조이스틱을 왼쪽, 오른쪽으로 움직이는 횟수는 현재 인덱스의 문자의 왼쪽 방향으로 이동했을 때 있는 다른 문자까지의 이동횟수와 문자열의 오른쪽 방향으로 이동했을 때 있는 다른 문자까.. [MySQL] GROUP BY, HAVING - GROUP BY GROUP BY 절은 선택된 레코드의 집합을 필드의 값이나 표현식에 의해 그룹화한 결과 집합을 반환한다. 즉, GROUP BY 절은 하나의 그룹을 하나의 레코드로 반환하므로, 결과 집합의 크기를 줄여주는 역할을 한다. SELECT Age, COUNT(*) AS NumOfCustomer FROM CUSTOMER GROUP BY Age; - HAVING HAVING 절은 SELECT 문의 WHERE 절처럼 GROUP BY 절에 의해 반환되는 결과 집합의 조건을 설정할 수 있게 한다. SELECT Address, Name, MAX(Age) AS MaxAge FROM CUSTOMER GROUP BY Address HAVING MaxAge > 15; [MySQL] UNION UNION이란 여러 개의 SELECT 문의 결과를 하나의 테이블이나 결과 집합으로 표현하는 연산 이때 각각의 SELECT 문으로 선택된 필드의 개수와 타입은 모두 같아야 하며, 필드의 순서 또한 같아야한다. - UNION SELECT Name FROM Reservation UNION SELECT Name FROM Customer; - UNION ALL UNION은 DISTINCT 키워드를 따로 명시하지 않아도 기본적으로 중복되는 레코드를 제거한다. 따라서 이렇게 중복되는 레코드까지 모두 출력하고 싶다면, ALL 키워드를 사용해야 한다. SELECT Name FROM Reservation UNION ALL SELECT Name FROM Customer; http://tcpschool.com/mysql/my.. 이전 1 2 3 4 5 6 7 ··· 14 다음