[Programmers] Level 2. 충돌위험 찾기
·
코딩테스트/Python
🔗 Problem Link 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr❔Thinking2차원 배열로 주어진 위치에서, 각 로봇이 주어진 위치로 최단 경로를 통해 이동한다.로봇이 해당 위치를 지날 때, 또 다른 로봇이 동일한 위치를 지난다면 충돌 위험으로 생각한다.모든 로봇이 정해진 포인트를 모두 이동할 때, 몇번의 충돌 위험이 있는지 반환한다.행을 먼저 이동하고, 그 다음으로 열을 이동한다.routes는 i+1번째 로봇이 가야할 경로를 나타낸다 (ex - [2,3,4,5]는 2포인트에서 3으로, 3에서 4로, 4에서 5로 이동한다)💻Solutionfrom collections import defa..
[Programmers] Level 2. 3xn 타일링
·
코딩테스트/Python
🔗 Problem Link 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr❔Thinking2x1 타일로, 가로가 n이고 세로가 3인 공간을 채우는 방법의 수를 반환한다.답을 1,000,000,007으로 나눈 나머지를 반환해야 한다.💻Solutiondef solution(n): if n % 2 != 0: return 0 dp = [0, 0, 3, 0, 11] + [0 for _ in range(n-3)] for i in range(5, n+1): if i % 2 == 0: dp[i] += dp[i-2] * 3 + 2 for..
[Programmers] Level 2. 양궁대회
·
코딩테스트/Python
🔗 Problem Link 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr❔Thinking가장 큰 점수 차이로 상대를 이기는 경우를 반환하고, 불가능하다면 -1을 반환한다.총 N발의 화살이 주어지고, 상대보다 해당 점수에 더 많은 화살을 맞혀야 해당 점수를 가져올 수 있다.점수차 같은 경우에는, 더 적은 점수에 화살을 쏜 경우를 반환한다.💻Solutiondef solution(n, info): # 해당 점수를 획득 한다 or 못한다 def get_score(arrow:int, targets:list, now_target:int): if now_target == 10 or..
[Programmers] Level 2. 혼자 놀기의 달인
·
코딩테스트/Python
🔗 Problem Link 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr❔Thinking상자를 열어서 해당 상자 안에 있는 숫자에 해당하는 상자를 연속적으로 열어나간다.한번에 열 수 있는 상자의 수를 기록하고, 더이상 열 수 있는 상자가 없을 때까지 상자를 선택하여 연다.한번에 연 상자들을 그룹화할때, 두 개의 그룹의 상자 수를 최대로 한 경우를 반환한다. 그룹이 하나라면 0이다.💻Solutiondef solution(cards): answer = [] visited = [False] * len(cards) def dfs(num:int): cnt = 0 ..
[Programmers] Level 2. 혼자서 하는 틱택토
·
코딩테스트/Python
🔗 Problem Link 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr❔Thinking선공인 O와 후공인 X를 번갈아 놓는 틱택토 게임을 혼자서 진행할때, 가능한 경우인지 불가능한 경우인지 반환한다.실수일 가능성을 판단하는게 아니라, 나올 수 있는 경우인지를 판단한다.💻Solutiondef is_Bingo(b:list): bingo = set() # 좌우 for row in b: if row in ["OOO", "XXX"]: bingo.add(row) # 상하 for col in list(zip(*b)): if ''.join(..
[Programmers] Level 2. 광물 캐기
·
코딩테스트/Python
🔗 Problem Link 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr❔Thinking주어진 다이아몬드, 철, 돌 곡괭이로 주어진 광물을 최대한 캘때, 가장 적은 피로도가 쌓이는 방법을 찾는다.곡괭이가 적은 경우 광물이 남을 수 있고, 광물이 적을 경우 곡괭이가 남을 수 있다.💻Solution1. 모든 경우 확인 (시간초과)from itertools import permutationsdef solution(picks, minerals): total_cost = 10e9 # 곡괭이 선택하기 need_pick = len(minerals) // 5 + 1 total_pick = [..