[Programmers] Level 2. 빛의 경로 사이클
·
코딩테스트/Python
🔗 Problem Link 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr❔ThinkingS, L, R로 이루어진 격자각 주어질 때, 빛이 조건을 따라 이동하는 경로 사이클의 길이를 오름차순으로 반환한다.S는 진행 방향 그대로, L과 R은 각각 왼쪽과 오른쪽으로 방향을 전환하여 이동한다.빛의 경로 사이클은 빛이 해당 경로를 따라 이동하다가 다시 처음 이동으로 돌아오는것을 말한다.격자의 끝에서는, 경로를 유지한 채 반대쪽 끝으로 다시 돌아간다. 💻Solution1. 초기 풀이 (class 작성)class LightsCycle(): def __init__(self, board:list): ..
[Programmers] Level 2. 당구 연습
·
코딩테스트/Python
🔗 Problem Link 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr❔Thinking칠 당구공의 위치와 맞춰야 하는 당구공의 위치가 주어질 때, 한 번 이상의 쿠션으로 맞추는 최단 거리를 반환한다.당구공이 벽에 맞을 경우, 입사각과 반사각은 같다. (모서리의 경우, 가는 경로 그대로 돌아온다.)당구대의 가로 세로 크기는 1000 이하이며, 맞춰야 하는 당구공은 1000개 이하이다.💻Solutiondef solution(m,n,startX,startY,balls): def dist_calc(x1,y1,x2,y2): return (x1-x2)**2 + (y1-y2)**2 an..
[Programmers] Level 2. 지게차와 크레인
·
코딩테스트/Python
🔗 Problem Link 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr❔Thinking컨테이너를 빼내는 요청이 주어질 때, 모든 요청을 수행하고 남은 컨테이너 수를 반환한다.컨테이너는 빼내는 요청은 두가지로 나뉜다.알파벳 1개 : 해당 컨테이너를 지게차로 꺼낸다. 지게차는 외부와 맞닿은 컨테이너만 꺼낼 수 있다.알파벳 2개 : 해당 컨테이너를 크레인으로 꺼낸다. 크레인은 모든 컨테이너를 조건없이 꺼낼 수 있다.💻Solutionfrom collections import dequedef solution(storage, requests): def fork_lift(target:str): ..
[Programmers] Level 2. 유사 칸토어 비트열
·
코딩테스트/Python
🔗 Problem Link 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr❔Thinkingn-1번째의 1은 11011로, 0은 00000으로 치환한다. (0번째는 1)1 l과 r 구간이 주어질 때, 해당 구간의 1의 개수를 반환한다. (l과 r은 폐구간)💻Solutiondef solution(n, l, r): answer = 0 for i in range(l-1, r): while True: if i % 5 == 2: break elif i 🗝️keypointn이 20까지이기 때문에, 5^20은 시간 내에 반복..
[Programmers] Level 2. 도넛과 막대 그래프
·
코딩테스트/Python
🔗 Problem Link 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr❔Thinking사이클을 이루는 도넛모양 그래프, 한줄로 이어진 막대 그래프, 동일한 도넛 모양 2개가 이어진 8자 모양 그래프의 각 개수를 반환한다.그래프를 이루는 정점 이외에 하나의 생성점이 각 그래프와 연결되어 있고, 이 생성점도 찾아 반환한다.💻Solutionfrom collections import defaultdict, dequedef solution(edges): answer = [0, 0, 0, 0] start, donut, bar, eight = 0, 1, 2, 3 graph = defaultdi..
[Programmers] Level 2. 숫자 블록
·
코딩테스트/Python
🔗 Problem Link 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr❔Thinkingbegin, end가 주어질 때, 해당 구간에 놓이는 숫자 블록을 반환한다.숫자 블록은 n*2, n*3, n*4 순서로 놓인다n = 1인 경우, [0,1,1,1,1,1,1,1,1]n = 2인 경우, [0,1,1,1,2,1,2,2,1]n = 3인 경우, [0,1,1,1,2,1,3,2,1]1 블록에 적힌 숫자 💻Solutionfrom bisect import bisect_leftdef find_divisors(n)->list: divisor_list = [] for i in range(1, int(n**0..