https://school.programmers.co.kr/learn/courses/30/lessons/42628 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 백준에도 똑같은 문제가 있다.전에 프로그래머스 레벨 테스트에서 이 문제를 만났다가 구현에서 막혀서 못 풀었던 기억이 났다.(백준에서도 힘들게 풀었었는데..) 이번에 다시 풀어볼 때는 한번에 잘 풀려서 기분이 좋았다. (옛날 풀이는 기억이 나지 않고 완전히 새로운 느낌으로 풀었다.)이 문제의 핵심은 최소힙과 최대힙을 만들고, 이 둘 사이에 데이터 동기화를 잘 시켜주는 것이다. 먼저 데이터를 추가할 때는 두 힙에 모두 데이터를 추가한다.최솟값을 삭..
https://school.programmers.co.kr/learn/courses/30/lessons/81305# 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 이진트리를 k개 그룹으로 분할할 때, 각 그룹에 있는 노드가 가진 가중치의 합의 최댓값이 최소가 되도록 하는 문제최댓값이 최소가 되어야 한다는 점에서 이분탐색 (매개변수 탐색) 까지는 어렵지 않게 떠올릴 수 있었으나, 이진트리를 k개로 분할하는 구현에서 막혀서 어려웠다. 처음에는 각 트리에 대해서 누적합을 구하고, 누적합 정보를 기반으로 쪼개는 풀이를 떠올렸다.하지만 이 풀이가 27점 맞고 틀려서 디버깅하다가 반례를 못찾아서 클로드에 물어봤더..
https://school.programmers.co.kr/learn/courses/30/lessons/42892 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr x좌표의 상대적인 위치를 이용하여 이진트리의 구성을 파악하고 전위/후위순위 결과를 출력하는 문제처음에는 직접 간선을 연결하고 그래프 순회를 해야하나 생각했는데, '이진트리' 라는 특성상 계속해서 좌/우 구분이 나눠지는 관계를 이용해서 현재 루트 노드가 커버하는 범위를 계속 좁혀나가면서 특정 x좌표의 노드가 현재 노드의 왼쪽/오른쪽 자식인지 판단하도록 하였다.현재 노드의 자식노드인지 판별하는 것은 현재 노드가 커버하는 범위 안에 포함되어 있는지 ..
https://school.programmers.co.kr/learn/courses/30/lessons/258711 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 생각보다 재미있게 푼 그래프 문제백준 티어로 치면, 골드5 정도 될 것 같다. 막대 그래프 = 1자로 연결된 트리도넛 그래프 = 사이클 1개인 그래프8자 그래프 = 사이클이 2개인 그래프 이때 각각의 그래프를 식별할 수 있는 특징을 잡아내면 된다. 막대 그래프는 사이클이 없다.도넛 그래프는 사이클이 존재하며, 모든 정점의 out degree 가 1개이다.8자 그래프는 사이클이 존재하며, 1개 정점의 out degree = 2, 나머지 정점의 ..
난이도 : 레벨 1 다트 점수 현황이 문자열로 주어질 때, 해당 문자열로부터 다트 점수를 계산하는 문자열 구현 문제이다. 내가 무식하게 푼 방법과 다른 사람의 코드를 보면서 배운 점을 적어보고자 한다. 평소에 구현을 무식하고 우직하게 하다보니 시간도 오래걸리고 실수도 정말 많이 해서 힘들었는데 이런 쉬운 깡구현 문제를 많이 풀면서 연습을 해야겠다는 생각이 들었다. 1. 다트는 3번 던진다. 2. 각 기회에서 점수는 0~10 사이의 점수가 주어진다. 3. 각 점수 이후에 해당 점수를 몇 제곱할지 S, D, T 가 주어진다. 4. 이후에 해당 점수와 기존 점수에 연산을 진행하는 옵션 *, #이 주어질 수도 있고 주어지지 않을 수도 있다. def solution(dartResult): point_list = ..