[Level 2] / [Python] 하노이의 탑
·
Coding Test/프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/12946 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 기본 원리 1. 원반이 한 개일 때 (n=1) 시작 지점에서 끝 지점으로 바로 이동 합니다. 2. 원반이 n 개일 때 1) 1번 기둥에 있는 n개 원반 중 n-1 개를 2번 기둥으로 옮깁니다. 2) 1번 기둥에 남아 있는 가장 큰 원반을 3번 기둥으로 옮깁니다. 3) 2번 기둥에 남아 있는 n-1 개의 원반을 3번 기둥으로 옮깁니다. n개 원반을 옮기려면 n-1개 원반을 옮기는 문제를 해결해야 하..
[Level 2] / [Python] 전력망을 둘로 나누기
·
Coding Test/프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/86971 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 위 그림처럼 간선이 제일 많은 노드인 #4에서 연결된 간선 중 하나를 끊고 노드 갯수를 비교하는 방법을 생각하였다. 하지만 테스트케이스 8번부터 오류를 출력하였고 반례를 찾아야만 했다. 위 그림과 같은 경우 처음에 생각했던 방식대로 진행하게 되면 #3 노드의 간선 중 하나를 끊게 되고 (3, 6)개로 나누게 된다. 하지만 정답은 #4, #5 또는 #4, #6 의 간선을 끊어 (4, 5)..
[Level 2] / [Python] 두 큐 합 같게 만들기
·
Coding Test/프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/118667 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 생각나는 대로 직관적으로 작성하고 이게 되나..? 했는데 맞았다! 대신 많이 지저분하다. from collections import deque def solution(queue1, queue2): answer = 0 q1 = deque(queue1) q2 = deque(queue2) sum_ = sum(q1) + sum(q2) mid_ = sum_ // 2 q1_s = sum(q1) ..
[Level 2] / [Python] 가장 큰 사각형 찾기 - DP (Dynamic Programming)
·
Coding Test/프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/12905 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결 방법 DP (Dynamic Programming) 을 적용하여야 합니다. 알고리즘도 공부하였고 이해도 하였는데 막상 문제에 적용하려니 너무 어려웠습니다. 접근 방법 1행 (array[1][:])과 1열 (array[:][1])은 왼쪽, 위쪽이 없으므로 미리 처리합니다. 따라서 (1, 1)부터 탐색을 진행합니다. 진행하면서 현재 값이 1인지 확인 후 (왼쪽,위쪽,왼쪽+위쪽) 의 최솟값 + 1 ..
[Level 2] / [Python] 배달 - 다익스트라 (Dijkstra)
·
Coding Test/프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/12978 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 다익스트라 알고리즘을 적용하여 해결 import heapq def dijkstra(dis, visited): heap = [] heapq.heappush(heap, [0, 1]) while heap: cost, node = heapq.heappop(heap) for c, n in visited[node]: if cost + c < dis[n]: dis[n] = cost + c heapq.heapp..
[Level 2] - 가장 큰 수
·
Coding Test/프로그래머스
https://programmers.co.kr/learn/courses/30/lessons/42746 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 programmers.co.kr https://geunuk.tistory.com/68 [Python] cmp_to_key() - 원하는 기준으로 sort() (정렬) 하기 https://programmers.co.kr/learn/courses/30/lessons/42746 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어..
[Level 2] - 튜플
·
Coding Test/프로그래머스
https://programmers.co.kr/learn/courses/30/lessons/64065?language=python3 코딩테스트 연습 - 튜플 "{{2},{2,1},{2,1,3},{2,1,3,4}}" [2, 1, 3, 4] "{{1,2,3},{2,1},{1,2,4,3},{2}}" [2, 1, 3, 4] "{{4,2,3},{3},{2,3,4,1},{2,3}}" [3, 2, 4, 1] programmers.co.kr 나의 풀이 더보기 import re def solution(s): answer = [] s_split = list() s_dict = dict() for i in re.split(r'{*}', s): tmp = [] if i != '': for k in i.split(','): i..
[Level 2] - 수식 최대화
·
Coding Test/프로그래머스
https://programmers.co.kr/learn/courses/30/lessons/67257 코딩테스트 연습 - 수식 최대화 IT 벤처 회사를 운영하고 있는 라이언은 매년 사내 해커톤 대회를 개최하여 우승자에게 상금을 지급하고 있습니다. 이번 대회에서는 우승자에게 지급되는 상금을 이전 대회와는 다르게 다음과 programmers.co.kr 나의 풀이 더보기 import itertools import re import copy def solution(expression): oper = {'+': [], '-': [], '*': []} oper_v = {} operator = [] operator_list = [] result = [] expression_split = re.split(r'[\+\-..
욱근욱
'Coding Test/프로그래머스' 카테고리의 글 목록 (15 Page)