일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- BuildConfig
- 시뮬레이션
- dfs
- SWEA
- 순수함수
- 백준 퇴사
- 스카이라인 쉬운거
- 지능형 기차2
- Parcelize
- val
- EditText
- 약수 구하기
- Parcelable
- 백준 14501
- 자바
- 조합
- imeOptions
- hilt
- BFS
- 백준
- Android
- 2501
- java
- Kotlin
- 오르막수
- EditorInfo
- 최단경로
- 완전탐색
- 순열
- 프로그래머스
- Today
- Total
목록알고리즘 (70)
안드 공부를 해볼까?
1. 문제분석 https://www.acmicpc.net/problem/2460 2460번: 지능형 기차 2 최근에 개발된 지능형 기차가 1번역(출발역)부터 10번역(종착역)까지 10개의 정차역이 있는 노선에서 운행되고 있다. 이 기차에는 타거나 내리는 사람 수를 자동으로 인식할 수 있는 장치가 있다. www.acmicpc.net 사실 문제분석이랄 것도 없는게 for문만 사용하면 풀 수 있다. 10개의 역에서 각각 내렸다가 탔다가 할 때 가장 많이 타고 있는 사람의 명수를 구하면 된다. 2. 구현 import java.io.BufferedReader import java.io.InputStreamReader import kotlin.math.max fun main(args: Array) { val br ..
1. 개요 알고리즘을 처음부터 해보자는 마음으로 kotlin을 시작하였습니다. 간단한 알고리즘인 최소, 최대에 대해 작성해보겠습니다. 2. 본문 최소, 최대는 정렬만 할 줄 안다면 해결할 수 있다. 또한 코틀린이나 자바에서 이미 최고 성능을 낼 수 있는 정렬이 있으니 그것을 이용했다. https://www.acmicpc.net/problem/10818 10818번: 최소, 최대 첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다. www.acmicpc.net 해당 문제를 기준으로 설명하겠습니다. import java.io.Buffere..
1. 개요 이번 포스팅에서는 이진수를 구하겠습니다. 사실 자바에서는 간단하게 구현할 수 있어 문제를 기준으로 보겠습니다. 2. 본문 항상 문제를 풀다보면 10진수 -> 2진수, 10진수 -> 16진수로 변환해서 푸는 문제가 존재했습니다. 2진수는 0과 1로 만든 숫자입니다. 각 자릿수는 2의 제곱으로 이루어져 있습니다.(2^0, 2^1, 2^2...) 8진수는 0부터 7까지로 만든 숫자입니다. 각 자릿수는 8의 제곱으로 이루어져있습니다.(8^0, 8^1, ...) 16진수는 0부터 15까지 한자리 숫자로 만든 숫자 입니다. 각 자릿수는 16의 제곱으로 이루어져있습니다.(16^0, 16^1 ...) 그렇다면 16이라는 10진수를 각 진수에 맞게 변환하면 어떻게 될까요? import java.io.Buffe..
1. 개요 약수 구하는 방법은 기본적으로 그 수와 나눠서 나머지가 없다면 그것은 약수가 됩니다. 하지만 우리는 더 새로운 방법을 찾아봅시다. 2. 본문 만약 우리가 약수를 구한다고 할 때 단순히 생각나는 것은 약수를 전부다 구하는 것 입니다. 하지만 21억의 약수를 구한다고 하면 21억번을 반복해야할까요? int num = Integer.parseInt(st.nextToken()); int pos = Integer.parseInt(st.nextToken()); ArrayList list = new ArrayList(); for(int i = 1; i i에 대응하는 수 -> 약수 (하지만 중복처리를 위해 num / i != i) 간단하게 12를 예로 들어보겠습니다. 12 = 1 2 3 4 6 12, 제곱근..

1. 문제분석 https://www.acmicpc.net/problem/1863 1863번: 스카이라인 쉬운거 첫째 줄에 n이 주어진다. (1 ≤ n ≤ 50,000) 다음 n개의 줄에는 왼쪽부터 스카이라인을 보아 갈 때 스카이라인의 고도가 바뀌는 지점의 좌표 x와 y가 주어진다. (1 ≤ x ≤ 1,000,000. 0 ≤ y ≤ 500,000) 첫 www.acmicpc.net 스카이라인은 태양이 질 때에 보이는 건물들의 윤곽이라고 한다. 이때 건물의 최소 개수를 구하는 문제다. 힌트를 보면 이해하기가 쉬워진다. 스카이라인의 고도가 높아졌다가 낮아질때 그 건물의 개수가 특정된다. 고도를 처음부터 보면 1 2 2 2 1 3 3 1 이다. 2 2 2에서 1로 낮아졌을 때 2 2 2는 한 건물로 특정지을 수 ..

1. 문제 분석 https://www.acmicpc.net/problem/14719 14719번: 빗물 첫 번째 줄에는 2차원 세계의 세로 길이 H과 2차원 세계의 가로 길이 W가 주어진다. (1 ≤ H, W ≤ 500) 두 번째 줄에는 블록이 쌓인 높이를 의미하는 0이상 H이하의 정수가 2차원 세계의 맨 왼쪽 위치 www.acmicpc.net 가로와 세로가 주어지고 각 가로셀마다 높이가 주어진다. 그때 빗물이 몇개 고이는지 확인하는 문제다. 백준에 있는 힌트다. 여기서 가로 기준으로 잘 보면 규칙이 있다. 파란색으로 칠한 부분을 보면 된다. 검은색을 0, 하얀색을 1로 생각해보자. 첫째줄은 0 1 0 0이 된다. 빗물은 1칸 채워진다. 둘째줄은 0 1 1 0이 된다. 빗물은 2칸 채워진다. 셋째줄은 0..

1. 문제분석 https://www.acmicpc.net/problem/11057 11057번: 오르막 수 오르막 수는 수의 자리가 오름차순을 이루는 수를 말한다. 이때, 인접한 수가 같아도 오름차순으로 친다. 예를 들어, 2234와 3678, 11119는 오르막 수이지만, 2232, 3676, 91111은 오르막 수가 아니다. 수 www.acmicpc.net 숫자의 길이가 주어지고 오르막 수를 구하는 문제다. 간단한 dp 문제고 경우의 수를 구하면 규칙이 보인다. N이 1 ~ 3 일때를 구해봤다. 규칙은 회색칸을 더하면 파란색칸이 나온다는 것이다. 따라서 dp[i][j] = dp[i-1][j] + dp[i][j-1] 2. 구현 import java.io.BufferedReader; import java..

1. 문제분석 https://www.acmicpc.net/problem/17089 17089번: 세 친구 첫째 줄에 사람의 수 N(3 ≤ N ≤ 4,000), 친구 관계의 수 M(0 ≤ M ≤ 4,000)이 주어진다. 둘째 줄부터 M개의 줄에는 친구 관계를 의미하는 두 정수 A, B가 주어진다. 친구 관계는 A와 B, 그리고 B와 A가 친 www.acmicpc.net 1부터 N까지의 사람이 주어지고 각 친구관계를 보여준다. 이 사람들 중 3명을 뽑았을 때 각 친구수가 가장 적은 사람수를 구하면 된다. 즉, 1 2 3 4의 친구관계가 주어지면 1 2 3 4 중 3명을 뽑았을 때 그 친구수가 가장 작은 값을 출력하면 된다. 2. 시행착오 먼저 문제가 이해안갔다. 친구관계를 주는데 무슨 또 친구를 뽑으라는건지..