본문 바로가기
반응형

프로그래밍/Algorithm11

[프로그래머스 Lv.2] 가장 큰 수 문제 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다. 0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어 return 하도록 solution 함수를 작성해주세요. 제한사항 numbers의 길이는 1 이상 100,000 이하입니다. numbers의 원소는 0 이상 1,000 이하입니다. 정답이 너무 클 수 있으니 문자열로 바꾸어 return 합니다. 풀이방법 1. 인트로 저장된 numbers 배열을 문자로 변.. 2023. 9. 8.
[Algorithm] DFS와BFS ✔️DFS (깊이 우선 탐색)란? DFS는 그래프나 트리에서 깊이를 우선으로 탐색하는 알고리즘이며, 한 지점에서 출발하여 그래프의 깊은 곳을 우선적으로 탐색하며 더 이상 진행할 수 없을 때 되돌아가 다음 경로를 탐색합니다. 💡 동작 방식 재귀 또는 스택을 사용하여 구현 가능합니다. 시작 노드를 방문하고, 이웃 노드 중 방문하지 않은 노드를 재귀적으로 방문합니다. 더 이상 방문할 이웃 노드가 없을 때, 이전 단계로 돌아가면서 다른 경로를 탐색합니다. 💡 사용 사례 미로 찾기, 그래프 순회, 트리 순회 등에 사용됩니다. 깊이 우선 탐색은 재귀 호출을 이용한 알고리즘에서 주로 사용됩니다. 💡 장단점 장점: 간단하고 구현이 쉽다. 더 깊은 경로를 먼저 탐색하여 빠르게 결과를 얻을 수 있을 때 효과적이다. 단점:.. 2023. 9. 7.
[프로그래머스 Lv.2] 다리를 지나는 트럭 문제 트럭 여러 대가 강을 가로지르는 일차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 다리에는 트럭이 최대 bridge_length대 올라갈 수 있으며, 다리는 weight 이하까지의 무게를 견딜 수 있습니다. 단, 다리에 완전히 오르지 않은 트럭의 무게는 무시합니다. 예를 들어, 트럭 2대가 올라갈 수 있고 무게를 10kg까지 견디는 다리가 있습니다. 무게가 [7, 4, 5, 6]kg인 트럭이 순서대로 최단 시간 안에 다리를 건너려면 다음과 같이 건너야 합니다. 따라서, 모든 트럭이 다리를 지나려면 최소 8초가 걸립니다. solution 함수의 매개변수로 다리에 올라갈 수 있는 트럭 수 bridge_length, 다리가 견딜 수 있는 무.. 2023. 9. 5.
[프로그래머스 Lv.2] 프로세스 문제 운영체제의 역할 중 하나는 컴퓨터 시스템의 자원을 효율적으로 관리하는 것입니다. 이 문제에서는 운영체제가 다음 규칙에 따라 프로세스를 관리할 경우 특정 프로세스가 몇 번째로 실행되는지 알아내면 됩니다. 1. 실행 대기 큐(Queue)에서 대기중인 프로세스 하나를 꺼냅니다. 2. 큐에 대기중인 프로세스 중 우선순위가 더 높은 프로세스가 있다면 방금 꺼낸 프로세스를 다시 큐에 넣습니다. 3. 만약 그런 프로세스가 없다면 방금 꺼낸 프로세스를 실행합니다. 3.1 한 번 실행한 프로세스는 다시 큐에 넣지 않고 그대로 종료됩니다. 예를 들어 프로세스 4개 [A, B, C, D]가 순서대로 실행 대기 큐에 들어있고, 우선순위가 [2, 1, 3, 2]라면 [C, D, A, B] 순으로 실행하게 됩니다. 현재 실.. 2023. 9. 3.
반응형