본문 바로가기

Algorithm, Data Structure

(9)
[BOJ 백준 알고리즘][삼성전자 기출] 15685번 문제/드래곤 커브 https://www.acmicpc.net/problem/15685 15685번: 드래곤 커브 첫째 줄에 드래곤 커브의 개수 N(1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 드래곤 커브의 정보가 주어진다. 드래곤 커브의 정보는 네 정수 x, y, d, g로 이루어져 있다. x와 y는 드래곤 커 www.acmicpc.net 문제 그림이 너무 많다. 위 링크에서 보고 오시라. 입력 첫째 줄에 드래곤 커브의 개수 N(1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 드래곤 커브의 정보가 주어진다. 드래곤 커브의 정보는 네 정수 x, y, d, g로 이루어져 있다. x와 y는 드래곤 커브의 시작 점, d는 시작 방향, g는 세대이다. (0 ≤ x, y ≤ 100, 0 ≤ d ≤ 3, ..
[BOJ 백준 알고리즘] 1911번 문제/흙길 보수하기 https://www.acmicpc.net/problem/1911 1911번: 흙길 보수하기 어젯밤 겨울 캠프 장소에서 월드 본원까지 이어지는, 흙으로 된 비밀길 위에 폭우가 내려서 N (1
[BOJ 백준 알고리즘] 2012번 문제/등수 매기기 https://www.acmicpc.net/problem/2012 2012번: 등수 매기기 첫째 줄에 자연수 N이 주어진다. (1 ≤ N ≤ 500,000) 둘째 줄부터 N개의 줄에 걸쳐 각 사람의 예상 등수가 순서대로 주어진다. 예상 등수는 500,000 이하의 자연수이다. www.acmicpc.net 문제 2007년 KOI에 N명의 학생들이 참가하였다. 경시일 전날인 예비소집일에, 모든 학생들은 자신이 N명 중에서 몇 등을 할 것인지 예상 등수를 적어서 제출하도록 하였다. KOI 담당조교로 참가한 김진영 조교는 실수로 모든 학생의 프로그램을 날려 버렸다. 1등부터 N등까지 동석차 없이 등수를 매겨야 하는 김 조교는, 어쩔 수 없이 각 사람이 제출한 예상 등수를 바탕으로 임의로 등수를 매기기로 했다. ..
[BOJ, 백준 알고리즘]1654번 문제/ 랜선 자르기 문제 문제 링크 집에서 시간을 보내던 오영식은 박성원의 부름을 받고 급히 달려왔다. 박성원이 캠프 때 쓸 N개의 랜선을 만들어야 하는데 너무 바빠서 영식이에게 도움을 청했다. 이미 오영식은 자체적으로 K개의 랜선을 가지고 있다. 그러나 K개의 랜선은 길이가 제각각이다. 박성원은 랜선을 모두 N개의 같은 길이의 랜선으로 만들고 싶었기 때문에 K개의 랜선을 잘라서 만들어야 한다. 예를 들어 300cm 짜리 랜선에서 140cm 짜리 랜선을 두 개 잘라내면 20cm 은 버려야 한다.(이미 자른 랜선은 붙일 수 없다.) 편의를 위해 랜선을 자르거나 만들 때 손실되는 길이는 없다고 가정하며, 기존의 K개의 랜선으로 N개의 랜선을 만들 수 없는 경우는 없다고 가정하자. 그리고 자를 때는 항상 센티미터 단위로 정수길이..
[프로그래머스] 단어 변환(level 3, DFS/BFS) 문제 프로그래머스 문제 보기 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 한 번에 한 개의 알파벳만 바꿀 수 있습니다. words에 있는 단어로만 변환할 수 있습니다. 예를 들어 begin이 hit, target가 cog, words가 [hot,dot,dog,lot,log,cog]라면 hit -> hot -> dot -> dog -> cog와 같이 4단계를 거쳐 변환할 수 있습니다...
[프로그래머스] 다리를 지나는 트럭 (level 2, 큐/스택) 문제 프로그래머스 문제 보기 트럭 여러 대가 강을 가로지르는 일 차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 트럭은 1초에 1만큼 움직이며, 다리 길이는 bridge_length이고 다리는 무게 weight까지 견딥니다. 예를 들어, 길이가 2이고 10kg 무게를 견디는 다리가 있습니다. 무게가 [7, 4, 5, 6]kg인 트럭이 순서대로 최단 시간 안에 다리를 건너려면 다음과 같이 건너야 합니다. 경과 시간다리를 지난 트럭다리를 건너는 트럭대기 트럭 0[][][7,4,5,6] 1~2[][7][4,5,6] 3[7][4][5,6] 4[7][4,5][6] 5[7,4][5][6] 6~7[7,4,5][6][] 8[7,4,5,6][][] 따라서,..
[BOJ, 백준 알고리즘]11725번 문제/ 트리의 부모찾기 문제 문제 링크 루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오. 입력 : 첫째 줄에 노드의 개수 N (2 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N-1개의 줄에 트리 상에서 연결된 두 정점이 주어진다. 출력 : 첫째 줄부터 N-1개의 줄에 각 노드의 부모 노드 번호를 2번 노드부터 순서대로 출력한다. 접근방향 문제에서 주목해야 할 것이 주어진 구조가 트리라는 것이다. 나의 경우 이진트리를 먼저 공부하였기 때문에 무의식적으로 이진 트리를 떠올려 이진트리라고 가정을 하다가 한참을 헤메었다. 이 문제에서의 트리의 경우 자식이 3개 이상이 될 수도 있는 등 이진트리의 성질을 만족하지 않는 케이스까지 고려해야 했기 때문에 이진트리..
[자료구조]스택(Stack) 스택에 대한 간단한 설명 스택(Stack)은 기본적으로 배열과 비슷한 형태의 자료구조다. 하지만 push와 pop이라는 연산이 있다는 것이 배열과는 차이가 있다. 밑에서 다시 한 번 다루지만 간단하게 보자면 다음과 같다. push : 원소를 삽입하는 연산이다. pop : 가장 마지막에 삽입 된 원소를 삭제 연산이다. 스택은 push와 pop을 통해 배열과는 다르게 원소의 삽입과 삭제가 자유롭다. 하지만 임의의 원소에 접근 하는데는 배열이 더 우수하다. 스택은 후입선출(Last In, First Out/ LIFO)의 특징을 가졌다. 가장 마지막에 들어간 원소가 가장 먼저 빠져나간다는 것이다. 즉 스택에서 pop을 하면 가장 최근에 삽입되었던 원소가 삭제된다. 스택과 비슷한 방식으로 동작하는 자료구조로는 큐..