본문 바로가기
반응형

프로그래머스/2단계108

(Python/LV2)광물캐기 문제출처: https://school.programmers.co.kr/learn/courses/30/lessons/172927?language=python3 풀이: def solution(picks, minerals): answer = 0 #스톤으로 캤을때 베이스 Stone_Base = [25 if i == "diamond" else 5 if i == "iron" else 1 for i in minerals[:5*sum(picks)]] #5개씩 분류하기 div_5 = [Stone_Base[5*i:5*(i+1)] for i in range((len(Stone_Base)-1)//5+1)] div_5 = sorted(div_5 , key = lambda x : sum(x),reverse=True ) print.. 2023. 4. 4.
(Python/LV2) 리코쳇 로봇 문제출처: https://school.programmers.co.kr/learn/courses/30/lessons/169199 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이: from collections import deque def solution(board): visited = [[0] * len(board[0]) for i in range(len(board))] move = [(0,1),(0,-1),(1,0),(-1,0)] visited = set() Q = deque() for idx, i in enumerate(board): for idy.. 2023. 3. 21.
(Python/LV2)덧칠하기 문제출처:https://school.programmers.co.kr/learn/courses/30/lessons/161989 풀이: def solution(n, m, section): pain_pan = [0] * n for i in section: pain_pan[i-1] = 1 left,right = section[0],section[-1] count = right-left + 1 res = 0 while True: if count paint 5로 최신화 5까지 칠했음 다음 3은 이미 칠했으니 if문 안 들어가고 그 다음 6 꺼 실행 2023. 3. 14.
(Python/LV2) 무인도 여행 문제 출처: 풀이: import sys sys.setrecursionlimit(10**5) def solution(maps): global totalSum answer = [] maps = [list(map) for map in maps] totalSum = 0 print(maps) def dfs(a, b): global totalSum maps[a][b] = 'X' move = [(1,0),(-1,0),(0,1),(0,-1)] for i, j in move: mx = b + i my = a + j if 0 2023. 2. 20.
(Python/LV2) 전력망을 둘로 나누기 문제출처: https://school.programmers.co.kr/learn/courses/30/lessons/86971 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이: from collections import deque def solution(n, wires): graph = [[] for _ in range(n+1)] n = res-1 for u,v in wires: graph[u].append(v) graph[v].append(u) def bfs(start): visited = [0] * (n+1) q = deque([start]) cou.. 2023. 2. 19.
(Python/LV2) 숫자 변환하기 문제 출처: 풀이: def solution(x, y, n): count = 0 answer = set() answer.add(x) # 시작값 x 10 넣음 while answer: print(answer) if y in answer: return count nx_answer = set() for nx in answer: if nx + n 2023. 2. 19.
반응형