본문 바로가기

Algorithm231

[프로그래머스 lv 3] 단속카메라 사용 언어 - Python3 문제 - 단속카메라 https://school.programmers.co.kr/learn/courses/30/lessons/42884 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 그리디 진출 시점을 기준으로 그 다음 진입시점이 진출시점보다 작다면, 안 겹치는 구간! 안겹치는 조건 = route[0] > key(진출시점) [[-20, -15], [-18, -13], [-14, -5], [-5, -3]] -20 >-30001 (True. 안겹친다) answer = 1 key = -15 -18 > -15 (False. 겹친다.. 2023. 12. 21.
[프로그래머스 lv 3] 섬 연결하기 사용 언어 - Python3 문제 - 섬 연결하기 https://school.programmers.co.kr/learn/courses/30/lessons/42861 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 크루스칼 알고리즘 가중치를 기준으로 정렬 후 유니온 + 파인드 가중치를 기준으로 정렬 = costs.sort(key=lambda x:x[2]) 내 노드에서 연결 된 모든 선 확인 = 부모 찾기 _find(x) 같은 집합으로 묶어주기 = 사이클 안생기게 처리 _union(a,b) def _find(x): while par[x] != x: # 부.. 2023. 12. 20.
[프로그래머스 lv 2] 구명보트 사용 언어 - Python3 문제 - 구명보트 https://school.programmers.co.kr/learn/courses/30/lessons/42885 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 덱 리스트의 pop, append 이용 1. 정렬후 스택 사용하기 => 절반 테스트케이스에서 오답 def solution(people, limit): answer = 1 stack = [] people.sort() for p in people: if len(stack) == 2: # 이미 최대 두명 태웠다면 answer += 1 # 보트개수 추가.. 2023. 12. 20.
[프로그래머스 lv 2] 큰 수 만들기 사용 언어 - Python3 문제 - 큰 수 만들기 https://school.programmers.co.kr/learn/courses/30/lessons/42883 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 스택 리스트의 pop, append 이용 1. 시간초과 오답 가능한 모든 조합을 구한후, 최대값 출력 from itertools import combinations def solution(number, k): result = list(combinations(list(number),len(list(number))-k)) lst = [] for.. 2023. 12. 19.
[프로그래머스 lv 2] 조이스틱 사용 언어 - Python3 문제 - 조이스틱 https://school.programmers.co.kr/learn/courses/30/lessons/42860 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 Greedy 탐욕법 (최적해 도출) 최소한으로 움직이는 경우의 수 abcdefghijklnmopqrstuvwxyz A로 이루어진 문자열을 최소한의 커서이동을 통해 원하는 알파벳으로 바꿔야한다. 1. 상하 이동 = 알파벳 이동 디폴트 = 0 알파벳을 찾을 때 "A부터 오름차순으로 찾기 VS Z부터 내림차순으로 찾기" 중 빠른 방향으로 찾아준다. a.. 2023. 12. 19.
[프로그래머스 lv 3] 퍼즐 조각 채우기 사용 언어 - Python3 문제 - 퍼즐 조각 채우기 https://school.programmers.co.kr/learn/courses/30/lessons/84021 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 큐, BFS 채워야할 빈칸과 도형을 분할해서 생각하기 1. def find_board(board,f) empty_blocks = find_block(game_board,0) # game_board의 빈공간(0) 위치 찾기 puzzles = find_block(table,1) # table의 블럭(1) 위치 찾기 방문하지 않았고 해당 위치.. 2023. 12. 18.
[프로그래머스] PCCP 모의고사 2회 4번 보물 지도 사용 언어 - Python3 문제 - 보물 지도 https://school.programmers.co.kr/learn/courses/15009/lessons/121690 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 큐, BFS 이동하면서 신발 사용안했다면 신발사용한 nx,ny로 이동 1. from collections import deque 2. dx,dy 방향 상하좌우 이동 3. graph(n*m) 설정, hole 구멍위치는 1이고 나머지는 0 4. visited(n*m*2) 설정, 신발사용여부 O/X 포함한 방문여부 설정 5. 시작 queue .. 2023. 12. 18.
[프로그래머스] PCCP 모의고사 2회 3번 카페 확장 사용 언어 - Python3 문제 - 카페 확장 https://school.programmers.co.kr/learn/courses/15009/lessons/121689 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 큐 한사람씩 주문받으면서 시간 업데이트! 몇명이 대기중인지 확인한다. 1. 첫번째 시도 (오답) import heapq def solution(menu, order, k): heap = [] # 우선순위 큐 time = 0 total_time = 0 result = [] n = len(order) while order: answer = .. 2023. 12. 15.
[프로그래머스] PCCP 모의고사 2회 2번 신입사원 교육 사용 언어 - Python3 문제 - 신입사원 교육 https://school.programmers.co.kr/learn/courses/15009/lessons/121688 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 heapq 자동 정렬 기능 활용 시간초과 없이 구현하기가 포인트! 1. 첫번째 시도 (오답) 모든 테스트에서 시간초과 from itertools import combinations def solution(ability, number): idx = [i for i in range(len(ability))] # idx while numb.. 2023. 12. 15.
[프로그래머스] PCCP 모의고사 2회 1번 실습용 로봇 사용 언어 - Python3 문제 - 실습용 로봇 https://school.programmers.co.kr/learn/courses/15009/lessons/121687 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 구현 방향에 따라 바뀌는 x, y 위치 잘 파악하기 개인적으로 지금까지 PCCP 문제중에 제일 쉬웠음 0. 시작위치 x=0, y=0 / 시작방향 a = 0 오른쪽 90도 회전 : a+90 왼쪽 90도 회전 : a-90 360도 넘거나 0보다 작아지면 -360, +360으로 방향 업데이트 1. 명령어에 따라 바뀌는 x값, y값을 저장해준.. 2023. 12. 15.