분류 전체보기
-
[프로그래머스] Python - 네트워크메모/알고리즘 2022. 2. 14. 16:20
코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있 programmers.co.kr 프로그래머스의 DFS/BFS 레벨3 문제다. 네트워크 노드의 개수와 각 노드가 연결된 노드의 정보가 주어지면 총 네트워크의 개수가 몇 개 인지 확인해야 한다. 나는 우선 위 그림 처럼 가상의 Root를 주고 시작했다. Root로부터 깊이 우선 탐색을 수행한다. 접근하는 모든 노드의 인덱스를 키로 딕셔너리에 저장하고 현재의 탐색의 시작 노드 번호를 값으로 추가한다. 첫번째 경우에서는 1번 노드에 접근하고 자기 자신을 제외한 연결된 모든 노드를 탐색한다. 1번..
-
[프로그래머스] Python - 타겟 넘버메모/알고리즘 2022. 2. 14. 16:07
코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 programmers.co.kr 프로그래머스의 DFS/BFS 레벨2 문제다. 숫자들이 리스트로 주어지고 각 숫자들을 서로 더하거나 뺀 결과가 타겟과 같은 경우가 몇 개 인지 확인하는 문제다. # target is 3 numbers = [1,1,1,1,1] -1+1+1+1+1 = 3 +1-1+1+1+1 = 3 +1+1-1+1+1 = 3 +1+1+1-1+1 = 3 +1+1+1+1-1 = 3 여러 경우의 수 중 위와 같이 타겟인 값을 찾아야 한다. 나는 DFS를 이용해서 풀었..
-
[프로그래머스] Python - 가장 큰 수메모/알고리즘 2022. 2. 3. 00:33
코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 programmers.co.kr 프로그래머스의 정렬 레벨2 문제다. 사전식 정렬을 이용하는데 반례가 존재한다. "30" ,"3" # 답 "330" # 반례 "303" 위와 같은 두 수를 문제의 의도대로라면 큰 수가 앞에 와야하는데 사전식 정렬을 이용하면 "30"이 "3"보다 앞에 오게 된다. 이 문제 해결을 위해 각 값에 3을 곱했다. 3을 곱한 이유는 천의 자리의 조건을 맞추기 위해서다. "3" -> "333" "30" -> "..
-
[프로그래머스] Python - 다리를 지나는 트럭메모/알고리즘 2022. 2. 3. 00:25
코딩테스트 연습 - 다리를 지나는 트럭 트럭 여러 대가 강을 가로지르는 일차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 다리에는 트럭이 최대 bridge_length대 올라갈 programmers.co.kr 프로그래머스 스택/큐의 레벨2 문제다. 나는 통과 완료, 통과 중 리스트를 만들고 대기 중인 트럭 리스트의 첫 번째 하중을 통과 중인 트럭의 총 하중에 더하고 빼는 방식으로 조건을 처리했다. 가장 바깥의 반복문은 모든 트럭이 통과 완료 상태가 될 때 까지 동작한다. GitHub - Floodnut/Algorithm: 알고리즘 풀이 모음 알고리즘 풀이 모음. Contribute to Floodnut/Algorithm development..
-
[프로그래머스] Python - 프린터메모/알고리즘 2022. 2. 3. 00:20
코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr 프로그래머스 스택/큐의 레벨2 문제 프린터다. 현재 출력할 문서보다 우선순위가 큰 문서가 뒤에 대기 중이라면 현재의 문서를 큐의 맨 뒤로 보낸다. 그 중 자신의 문서가 출력되는 순서를 반환하면 된다. 나는 기본적으로 주어진 문서 리스트의 원소를 각 원소의 인덱스를 더한 튜플로 변환했다. #전 [우선순위, 우선순위, 우선순위, ...] #후 [(0, 우선순위), (1, 우선순위), ...] 이후 리스트를 sorted로 정렬하고 정렬한 리스트와 원본 리스트의 첫 번째 ..