본문 바로가기

Algorithm231

[프로그래머스 lv 1] 나머지 한 점 사용 언어 - Python3 문제 - 나머지 한 점 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 x와 y 중 없는 아직 나오지 않은 한 점 찾기 (정답 맞춘 여부 O) x와 y 리스트에 값을 입력하고, 이미 존재하면 삭제한다. 최종적으로 한개만 있는 좌표만 남게된다. def solution(v): x = [] y = [] answer = [] for i in v: if i[0] not in x: x.append(i[0]) else: x.remove(i[0]) if i[1] not in y: y.append(i[1]) else: y.remove(i[.. 2023. 6. 23.
[프로그래머스 lv 3] 이중우선순위큐 사용 언어 - Python3 문제 - 이중우선순위큐 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 import heapq (정답 맞춘 여부 X) answer 정답을 입력할 리스트 heap = [] 빈 리스트에 push&pop 진행 oprations 한개씩 확인 빈칸을 기준으로 x와 num으로 split한다. 이때 num은 수치형으로 전환해준다. 만약 x 가 "I"라면, heap와 num을 heappush해준다. 만약 x가 "D"이고, num이 1이라면, heap 리스트에 값이 있다면, heap 리스트의 최대값을 계산해주고 그 값을 remove 제거해.. 2023. 6. 19.
[프로그래머스 lv 3] 디스크 컨트롤러 사용 언어 - Python3 문제 - 디스크 컨트롤러 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 import heapq (정답 맞춘 여부 X) answer = 0작업의 요청부터 종료까지 걸린 시간 now = 0 현재 시점 i = 0 jobs의 처리개수 저장하기 start = -1 시작시점 i heapq.heappush(heap, [j[1],j[0]]) : 자동 정렬.. 2023. 6. 19.
[프로그래머스 lv 2] 더 맵게 사용 언어 - Python3 문제 - 더 맵게 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 import heapq (정답 맞춘 여부 X) 1. 차례대로 힙에 삽입 heappush 2. heap[0] = 가장 작은 값이 K보다 클때까지 while문을 반복해준다. 3. 계산한 값 heappush로 삽입 가장 맵지 않은 음식의 스코빌 지수 heapq.heappop(heap) 두 번째로 맵지 않은 음식의 스코빌 지수 heapq.heappop(heap) 만약 리스트가 작아서 heappop()할 게 없어서 indexError가 난다면, -1을 return 한.. 2023. 6. 16.
우선순위 큐와 힙 나동빈 이코테 유튜브 강의 정리 https://www.youtube.com/watch?v=AjFlp951nz0&list=PLRx0vPvlEmdAghTr5mXQxGpHjWqSz0dgC&index=11 우선순위 큐(Priority Queue) 우선순위가 가장 높은 데이터를 가장 먼저 삭제하는 자료구조 데이터를 우선순위에 따라 처리하고 싶을 때 사용 예시) 물건 데이터를 자료구조에 넣었다가 가치가 높은 물건부터 꺼내서 확인해야 하는 경우 스택 - 가장 나중에 삽입된 데이터 큐 - 가장 먼저 삽입된 데이터 우선순위 큐 - 가장 우선순위가 높은 데이터 우선순위 큐 구현 방법 - 리스트 이용 리스트에 차례대로 뒷쪽에 연달아 넣은 후, 데이터를 꺼낼 때는 리스트에서 각각의 데이터 확인한 뒤에 가장 값이 큰 데이터를 .. 2023. 6. 16.
[프로그래머스 lv 1] 메뉴 리뉴얼 사용 언어 - Python3 문제 - 메뉴 리뉴얼 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 combinations, counter (정답 맞춘 여부 X) orders에 있는 가능한 모든 조합 찾기 XY = YX 이기 때문에 정렬필요 combination(sorted(order,c)) 가능한 모든 조합에서 해당 조합의 갯수를 Counter 모듈을 이용하여 셈 counter = Counter(temp) 조합의 개수가 0이거나, 해당 조합을 주문한 사람이 혼자이면 계산 X len(counter) != 0 and max(counter.values()).. 2023. 6. 14.
[프로그래머스 lv 4] 도둑질 사용 언어 - Python3 문제 - 도둑질 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 DP 규칙 찾기 (정답 맞춘 여부 X) 인접한 집은 못 털기 때문에, 아래의 점화식이 성립한다. dq[i] = max(dq[i-1], money[i] + dq[i-2]) 인접한 집 털거나, 현재 집과 전전집 털기 중 max값으로 업데이트 원의 형태라 1번집과 마지막집은 인접해, 같이 털지 못한다. 1번집을 터는 경우와 안터는 경우로 구분해서 계산한다. 1번집을 털면, 마지막 집은 털지 못하기 때문에 범위가 len(money)-1까지만 계산한다. 1번집을 안털면.. 2023. 6. 7.
[프로그래머스 lv 4] 사칙연산 사용 언어 - Python3 문제 - 사칙연산 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 DP 규칙 찾기 (정답 맞춘 여부 X) 사칙연산의 최대값을 구하기 arr를 뒤에서부터 확인하면서 마이너스가 나오기 전까지 sum_value에 값을 더해준다. 숫자인 경우, sum_value에 값을 더한다. sum_value += int(arr[idx]) +부호인 경우, continue 마이너스 부호를 만나면, 현재까지 저장한 값 sum_value에만 마이너스를 붙일지, 앞의 값체 계산한 값에서 마이너스를 붙일지 결정해야 한다. 최대/최소값을 갱신한다. 최솟값.. 2023. 6. 7.
[프로그래머스 lv 3] 등굣길 사용 언어 - Python3 문제 - 등굣길 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 DP 규칙 찾기 (정답 맞춘 여부 X) 0. input puddles 2023. 6. 2.
[프로그래머스 lv 3] 정수 삼각형 사용 언어 - Python3 문제 - 정수 삼각형 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 DP 규칙 찾기 (정답 맞춘 여부 X) 행, 열을 전부 돌면서 해당 위치의 값과 윗 값을 더해 가장 큰 값으로 해당 위치를 업데이트해준다. 가장 윗 값은 더할 것이 없으므로 무시하고 인덱스 1부터 시작한다. (실제론 2행부터 시작) 1. 삼각형의 가장 왼쪽 열 = 오른쪽 값만 더하기 2. 삼각형의 가장 오른쪽 열 = 왼쪽 값만 더하기 3. 나머지 값 = 양쪽 값 중에 큰 값으로 더하기 삼각형 마지막 행들 중 가장 큰 값을 return 한다. def sol.. 2023. 6. 2.