본문 바로가기

알고리즘, 문제해결/알고리즘 문제풀이80

[백준 23090번] 난민 난이도: 골드 I 문제 링크: https://www.acmicpc.net/problem/23090 23090번: 난민 문제의 답을 공백으로 구분하여 \(N\)줄에 걸쳐 출력한다. \(i\)번째 줄에, \(1\)번째 부터 \(i\)번째까지 이주해온 난민들이 정수시설까지 이동하는 거리의 합이 최소가 되도록 하는 정수시설의 \(y\ www.acmicpc.net 백준에서 새로 추가된 문제들을 보다가 모교 프로그래밍 대회에 나왔던 문제길래 한번 풀어 봤습니다. x = 0을 따라서 강이 흐르고 있고, 정화 시설은 강 위에 설치하게 됩니다. 매번 설치된 모든 난민촌에서 정화 시설까지의 거리의 합이 최소가 되는 곳에 정화 시설을 설치하고, 거리가 최소가 되는 곳이 2개 이상 존재하는 경우, y값이 가장 낮은 곳에 설치.. 2021. 10. 12.
[프로그래머스] 징검다리 문제 링크: https://programmers.co.kr/learn/courses/30/lessons/43236 코딩테스트 연습 - 징검다리 출발지점부터 distance만큼 떨어진 곳에 도착지점이 있습니다. 그리고 그사이에는 바위들이 놓여있습니다. 바위 중 몇 개를 제거하려고 합니다. 예를 들어, 도착지점이 25만큼 떨어져 있고, 바위가 programmers.co.kr 프로그래머스 기준 Level 4인, 약간 어려운 문제입니다. 문제 내에서 총 거리가 주어지고 (distance), 각 바위의 위치가 주어집니다. 이후 제거해야 하는 바위의 수 (n)이 주어집니다. n개의 바위를 제거한 후 시작점 - 각 바위 사이 - 도착점 사이의 거리를 구했을 때, 어떤 바위를 제거했느냐에 따라 각 바위 사이 거리가 달.. 2021. 10. 8.
[프로그래머스] 입국 심사 문제 링크: https://programmers.co.kr/learn/courses/30/lessons/43238 코딩테스트 연습 - 입국심사 n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다. 처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시에 한 programmers.co.kr 이분 탐색을 연습하기 위해 고른 문제인데... 처음에는 '이 문제를 어떻게 이분 탐색으로 해결할 수 있지?' 하고 고민했던 문제입니다. 그래서 약간의 힌트를 참고했는데... 맨 처음에 최소시간 0을 left, 최대 소요 시간을 right로 둡니다. 이때 최대 소요 시간은 (사람 수 n * 가장 오래 걸리는 심사관의 시간)이 됩니다. mid = (lef.. 2021. 10. 6.
[프로그래머스] 전력망을 둘로 나누기 문제 링크: https://programmers.co.kr/learn/courses/30/lessons/86971 코딩테스트 연습 - 9주차 9 [[1,3],[2,3],[3,4],[4,5],[4,6],[4,7],[7,8],[7,9]] 3 7 [[1,2],[2,7],[3,7],[3,4],[4,5],[6,7]] 1 programmers.co.kr 약간 생각하느라 시간이 걸렸던 문제입니다. 처음에는 크루스칼 알고리즘으로 접근해야 하나? (풀었던 비슷한 문제) 하고 생각도 해 봤는데 각 전선에 별도의 가치가 존재하지 않고, 간선의 가치의 합이 아닌 노드의 개수의 차이를 최소화 하는 문제라서 이 방법으로는 실패했습니다. 그 다음으로 제가 시도한 방법은 전선을 하나씩 끊어 보며 dfs를 통해 탐색하는 방법입니다. .. 2021. 10. 6.
[프로그래머스] 방의 개수 문제 링크: https://programmers.co.kr/learn/courses/30/lessons/49190 코딩테스트 연습 - 방의 개수 [6, 6, 6, 4, 4, 4, 2, 2, 2, 0, 0, 0, 1, 6, 5, 5, 3, 6, 0] 3 programmers.co.kr ※주의: 제 코드는 문제를 풀기는 했지만 굉장히 깔끔하지 못한 코드입니다. 더 좋은 풀이가 많으니 다른 풀이도 참고해 보세요! 좌표평면에서 시작점을 (0, 0)으로 하고, 0~7에 지정된 이동 방향을 따라 선을 쭉 그린 후, 완성된 방의 개수를 세는 문제입니다. 여기서 방이란, 사방이 선으로 막혀 있는 상태를 방 하나로 센다고 합니다. 맨 처음 제가 생각해낸 아이디어는 다음과 같습니다. "이미 방문했던 좌표에 다시 방문하는 .. 2021. 10. 3.
[프로그래머스] 여행경로 문제 링크: https://programmers.co.kr/learn/courses/30/lessons/43164 코딩테스트 연습 - 여행경로 [["ICN", "SFO"], ["ICN", "ATL"], ["SFO", "ATL"], ["ATL", "ICN"], ["ATL","SFO"]] ["ICN", "ATL", "ICN", "SFO", "ATL", "SFO"] programmers.co.kr 여러 공항이 있고, 출발지와 도착지가 적힌 티켓이 tickets 배열에 주어집니다. Tickets 내의 모든 티켓들을 각각 한 번씩만 사용하여, 주어진 모든 도시를 방문하는 경우의 방문 순서를 구하는 문제입니다. 모든 도시를 방문할 수 없는 경우는 입력으로 주어지지 않으며, 가능한 경우가 여러 가지 존재하는 경우, .. 2021. 10. 2.