일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- BFS
- 코딩테스트
- dfs
- 스택
- 그래프
- Android
- 알고리즘
- 백준
- 이분탐색
- 트리
- 배열
- 문자열
- 프로그래머스
- 코딩
- BOJ
- 생명주기
- GIT
- 코틀린
- 카카오블라인드
- 안드로이드
- 자바
- component
- 세그먼트트리
- activity
- 분할정복
- 완전탐색
- 문자열다루기
- 동적계획법
- 다이나믹프로그래밍
- 운영체제
- Today
- Total
목록Algorithm-백준 (43)
HS_development_log
문제 https://www.acmicpc.net/problem/2805 2805번: 나무 자르기 문제 상근이는 나무 M미터가 필요하다. 근처에 나무를 구입할 곳이 모두 망해버렸기 때문에, 정부에 벌목 허가를 요청했다. 정부는 상근이네 집 근처의 나무 한 줄에 대한 벌목 허가를 내주었고, 상근이는 새로 구입한 목재절단기을 이용해서 나무를 구할것이다. 목재절단기는 다음과 같이 동작한다. 먼저, 상근이는 절단기에 높이 H를 지정해야 한다. 높이를 지정하면 톱날이 땅으로부터 H미터 위로 올라간다. 그 다음, 한 줄에 연속해있는 나무를 모두 절단해버린다. 따 www.acmicpc.net 이분 탐색을 활용하는 문제. 주어진 조건의 범위가 크므로 int가 아닌 long을 써줘야 한다. 알고리즘 나무의 길이를 입력받으..
문제 https://www.acmicpc.net/problem/1654 1654번: 랜선 자르기 첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그 후 K줄에 걸쳐 이미 가지고 있는 각 랜선의 길이가 센티미터 단위의 정수로 입력된다. 랜선의 길이는 231-1보다 작거나 같은 자연수이다. www.acmicpc.net 이분 탐색을 활용하는 문제. 문제 자체는 어렵지 않았는데 자료형 선정에서 헤매었다. 랜선의 길이가 int의 최댓값이라 int로 될 줄 알았는데 이분 탐색과정에서 랜선의 길이를 서로 더하는 과정이 있어서 int형의 범위를 넘어서..
문제 https://www.acmicpc.net/problem/1074 1074번: Z 한수는 2차원 배열 (항상 2^N * 2^N 크기이다)을 Z모양으로 탐색하려고 한다. 예를 들어, 2*2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. 만약, 2차원 배열의 크기가 2^N * 2^N라서 왼쪽 위에 있는 칸이 하나가 아니라면, 배열을 4등분 한 후에 (크기가 같은 2^(N-1)로) 재귀적으로 순서대로 방문한다. 다음 예는 2^2 * 2^2 크기의 배열을 방문한 순서이다. N이 주어졌을 때, (r, www.acmicpc.net 재귀적 탐색으로 문제를 작게 쪼개서 풀면되는문제. 알고리즘 4칸이 될때까지 재귀함수를 사용하여 쪼개서 들어간다 4칸이되면 Z순서대로 탐색..
문제 https://www.acmicpc.net/problem/2263 2263번: 트리의 순회 첫째 줄에 n(1≤n≤100,000)이 주어진다. 다음 줄에는 인오더를 나타내는 n개의 자연수가 주어지고, 그 다음 줄에는 같은 식으로 포스트오더가 주어진다. www.acmicpc.net 문제 접근방법이 꽤 어려웠던문제. 포스트오더와 인오더의 특징을 잘 활용해야지 풀 수 있었다. 포스트오더의 특성상 맨 마지막에 오는것이 루트이다. 인오더는 루트를 기준으로 왼쪽 오른쪽이 나뉜다. 따라서 포스트오더로 루트를 찾고 인오더로 왼쪽 오른쪽 노드를 찾아서 계속 작은 트리로 노드를 쪼개서 프리오더를 해주면 된다. 알고리즘 포스트오더의 끝을 루트로 정하고 프리오더로 답을 출력해야하므로 일단 출력한다. 루트를 기준으로 인오더..