본문 바로가기

분류 전체보기198

평행 - Python, 기울기, 비구조화 할당 https://school.programmers.co.kr/learn/courses/30/lessons/120875?language=python3 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   풀이 - 나의 생각점이 4개 밖에 없으니까 페어를 이룰 수 있는 경우를 모두 확인해서 평행인 경우가 있는지 찾으면 됩니다. 평행인 경우를 아는 방법은 점들이 주어졌을 때, 네 점을 이루는 모든 선분 쌍을 구성하여 기울기를 비교할 수 있습니다. 벡터 (x1,y1)과 (x2,y2)가 주어졌을 때, 두 벡터가 평행하려면 다음 조건이 성립해야 합니다. x1 * y2 = x2 * y1​ 페어의 벡터 성분을 구한 후 위.. 2024. 11. 13.
안전지대 - Python, 구현, set https://school.programmers.co.kr/learn/courses/30/lessons/120866?language=python3 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   풀이 - 나의 생각 단순하게 반복문 돌려가면서 구해도 되고 폭탄의 범위를 set으로 저장 후 전체 칸 - set의 길이 = 정답 을 구해도 된다. 코드 def boom(board, x, y): di = [(-1,-1), (-1, 0), (-1, 1), (0, -1), (0, 1),(1,-1), (1, 0), (1, 1)] for dx, dy in di: nx, ny = x + d.. 2024. 11. 13.
프로세스 - Python, deque, sorted https://school.programmers.co.kr/learn/courses/30/lessons/42587?language=python3 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   풀이 - 나의 생각우선 순위가 높은 프로세스부터 시작되어야 하니까 주어진 프로세스의 우선 순위을 내림차순으로 정렬합니다. 그 다음 deque에 기존 프로세스들의 우선순위와 위치를 저장합니다. 문제에서 원하는 location에 있는 프로세스를 추적하기 위해서입니다. 방법은 from collections import dequedef solution(priorities, location): dq = deque(.. 2024. 11. 13.
기능개발 - Pyton, Deque, Math.ceil https://school.programmers.co.kr/learn/courses/30/lessons/42586 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   풀이 - 나의 생각첫번째 progress가 완료 되어야 뒤에 것들도 완료된다. 그러니까 첫번째 progress가 종료되는 날짜를 구하고 (math.ceil 을 쓰는 이유는 올림을 위해서이다.) 뒤에 progress들에도 일괄적으로 진행도를 더한다. 그 후 100이 넘어가는 progress들의 갯수를 세어준다. 100이 안 넘어가면 위의 과정을 반복한다.   코드 from collections import dequeimport mathdef .. 2024. 11. 13.
체육복 - Python, set https://school.programmers.co.kr/learn/courses/30/lessons/42862 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   풀이 - 나의 생각set의 차집합을 이용해서 체육복을 빌려 줄 수 있는 경우를 체크합니다. 이미 여분이 있는 경우에도 차집합을 통해 자동으로 걸러집니다. 코드 def solution(n, lost, reserve): real_lost = set(lost) - set(reserve) real_reserve = set(reserve) - set(lost) for no in sorted(real_reserve): .. 2024. 11. 12.
최빈값 구하기 - Python, Counter https://school.programmers.co.kr/learn/courses/30/lessons/120812 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  풀이 - 나의 생각Counter로 반복된 횟수를 구하고 max를 통해 최빈값을 구합니다. Counter로 구한 값을 반복문을 돌려 최빈값과 같은 경우를 찾아냅니다. 이 경우가 1개 이상이라면 최빈값이 여러개 있는 거니까 -1을 반환하고 1개라면 그 값을 반환해줍니다.  코드 from collections import Counterdef solution(array): answer = -1 cntNum = Counter(array) .. 2024. 11. 11.