pccp 4

[Python | 프로그래머스 | Lv_3] 수레 이동하기 (PCCP 기출문제)

😉 아이디어1. 2개의 수레에 대한 좌표 탐색 중첩 👉 이중 탐색 DFS or BFS2. 2개의 수레를 이동하는 중 수레의 위치가 서로 뒤바뀌는 경우와 두 개의 수레 도착 지점이 동일한 경우를 제외해야한다.3. 수레의 위치가 서로 뒤바뀌는 경우의 조건문 체크에 오류가 있었다. - 기존 : (n_bx, n_by) != red_start and (n_rx, n_ry) != blue_start - 수정 : not ((n_bx, n_by) == red_start and (n_rx, n_ry) == blue_start) - 두 개의 좌표 중 하나라도 원점 좌표와 일치하지 않으면, 참이 되어야 하지만(스위칭이 아니므로) 기존 조건식은 거짓 처리 중이었다...

알고리즘 2024.10.04

[Python | 프로그래머스 | Lv_2] 아날로그 시계 (PCCP 기출문제)

😉 아이디어1. 매 초 진행 시 시침, 분침, 초침의 각도를 계산하고 prev_angles에 저장한다.2. 현재 시침, 분침, 초침을 비교하고 일치하는 부분이 있다면 알람 횟수 증가3. 일치하는 부분이 없다면, 1초 전의 각도와 비교한다. 초침의 각도가 분침 혹은 시침보다 작았는데, 현재 시간에서는 앞서 있다면 알람이 울렸던 것이므로 횟수를 추가한다.* 이전의 초침이 354도 였다면 1초 후에는 360도 계산해야 올바른 추월을 계산할 수 있다. 그렇지 않으면 0도로 계산된다.😉 풀이def solution(h1, m1, s1, h2, m2, s2): answer = 0 # 초기 각도를 계산하고 1초씩 늘려서 생기는 각도의 변화에 따라 겹치는지 여부 확인 st..

알고리즘 2024.09.29

[Python | 프로그래머스 | Lv_2] 충돌위험 찾기 (PCCP 기출문제)

😉 아이디어1. 최소 이동거리 간 이동경로를 모두 저장 👉 장애물이 없기 때문에 문제에서 제시한 rows 부터 맞추고 cols 를 맞추면 된다.2. 산출된 이동경로를 순회하며 같은 시간(인덱스)에 충돌하는 로봇의 지점 위치를 계산😉 풀이from collections import dequefrom collections import defaultdictdef solution(points, routes): answer = 0 rows, cols = 0, 0 for point in points: rows = max(rows, point[0]) cols = max(cols, point[1]) grid = [[0] * cols for ..

알고리즘 2024.09.26

[Python | 프로그래머스 | Lv_3] 수식 복원하기 (PCCP 기출문제)

😉 아이디어1. expressions digit 중 가장 큰 숫자를 선별하고 +1 해주어 2~9 진수 중 반복 단위를 최소화2. 예상 진수를 순회하며 10진수로 변환하고 값이 일치하는지 확인(X가 없는 계산식에만 적용)3. 주어진 식을 모두 일치시키면 candidates 변수에 후보군으로 저장4. candidates 변수를 순회하며 X가 있는 값들을 계산, 단 이전 후보군과의 계산 결과가 다르면 ?로 표기😉 풀이def solution(expressions): answer = [] non_x_exprs = [] x_exprs = [] exprs = [] for expression in expressions: exprs.appen..

알고리즘 2024.09.26