일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 백준 14501
- java
- 2501
- EditText
- val
- 지능형 기차2
- hilt
- Kotlin
- 오르막수
- 백준 퇴사
- Parcelize
- BuildConfig
- SWEA
- 순수함수
- 프로그래머스
- BFS
- 약수 구하기
- Android
- 순열
- 최단경로
- dfs
- Parcelable
- 스카이라인 쉬운거
- EditorInfo
- 백준
- 조합
- 완전탐색
- 시뮬레이션
- 자바
- imeOptions
- Today
- Total
목록분류 전체보기 (95)
안드 공부를 해볼까?
1. 문제 분석 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5V1SYKAaUDFAWu SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 보호필름의 강도를 체크하는 문제다. 특정 요소가 K만큼 반복되면 그 한줄은 통과가 되는 것이다. 모든 필름에는 강제로 특성을 주입할 수 있다. 주입을 안 할 수도 있고 최소 투입 횟수를 구하는 문제다. 먼저 생각해볼 것은 주입을 어떤식으로 판단할지가 된다. 투입 횟수의 최솟값을 구하는 것인데 우리는 주어진 조건이 딱히 없으니 완전탐색을 사용한다. 그렇다면 완전탐색을 어떤식으로 구할까..
1. 문제 분석 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PoOKKAPIDFAUq SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 높은 곳부터 시작해서 점차 낮은 곳으로 길을 찾는 문제다. 딱 1곳에만 깎을 수 있고 등산로의 길이가 가장 긴 곳을 고르면 된다. 싸피 수업시간에는 문제가 제대로 이해안갔지만 이제는 그냥 이해를 해버렸다. 접근은 다음과 같다. 1. DFS 사용 2. 만약 길을 못간다면 깎아서 갈 수 있는지를 확인 -> 여기서 최소한으로 깎아야함 3. 더이상 깎지 못하게 적용 4. DFS 시작할 때 ..
1. 문제분석 https://swexpertacademy.com/main/code/problem/problemDetail.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제가 이해가지 않았지만 예제풀이를 보고 해결했다. 장훈이가 너무 커서 물건을 쌓아올린 것을 직원들이 힘을 합쳐 꺼낼려고 한다. 직원들끼리 탑을 쌓아서 물건을 가져와야하고 물건과 탑의 차가 가장 적은 것을 구하면 된다. 필자는 조합으로 풀었다. 모든 조합의 경우의 수를 구하고 탑이 물건의 높이보다 크고 그 차가 가장 작은 값을 출력하면 된다. 2. 구현 import java.io.BufferedReader; import java.io.IO..
1. 문제 분석 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWsBQpPqMNMDFARG SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 백준에서 불! 과 같은 문제다. BFS 문제로 1초마다 수연이는 한칸씩, 부식되는 곳 또한 계속 상하좌우로 한칸씩 움직인다. 필자는 수연이가 움직이는 큐, 부식되는 큐로 나누어서 풀었다. 주의할 점은 1초마다 부식되는 것으로 모든 큐를 싹 뽑아서 부식을 체크하고 큐에 넣는 식으로 해야한다. 2. 구현 package samsung01; import java.util.*; import ..
1. 문제 분석 주어진 숫자에 연산자를 넣는 문제다. 연산자의 개수는 주어진 숫자 - 1 만큼 주어지므로 순열을 통해 연산자의 집합을 구하면 된다. 2. 구현 import java.util.*; import java.io.*; public class Solution { static int size; static int[] numArr; static ArrayList operList = new ArrayList(); static int max = Integer.MIN_VALUE; static int min = Integer.MAX_VALUE; public static void main(String[] args) throws IOException { BufferedReader br = new Buffered..
1. 문제 분석 문제를 제대로 이해해보자. 하루단위로 국가마다 연합을 만들고 인구이동을 하는 것이다. 필자는 인구이동이 일어났다면 하루라고 생각해서 시간이 꽤 걸렸다. DFS를 사용했고 연합이 만들어지는 조건을 달성하면 합쳐주고 합칠 국가가 없으면 걸린 날짜를 반환한다. 연합이 만들어지는 조건은 다음과 같다 1. 배열의 인덱스 값을 벗어나면 안된다. 2. 이미 방문한 곳은 가면 안된다. 3. L과 R 사이의 수여야만 한다. 3번 조건을 위해 절댓값을 활용했다(Math.abs) 2. 구현 import java.util.*; import java.io.*; class Point { int x, y; Point(int x, int y) { this.x = x; this.y = y; } } public clas..
1. 문제분석 최단거리가 가장 긴 지점에 보물이 있는 것이다. 처음 그림에서 보물섬을 보여주고 그 다음 보물이 뭍힌 곳을 보여줘서 따로 구하고 해야하나 싶지만 그럴 필요가 없다. 보물은 두 지점사이의 거리가 가장 긴 곳에 있으므로 L이 있는 부분에서 BFS를 통해 각 지점별 거리를 구하면 된다. 2. 구현 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; class Point { int x, y, dist; Point(int x, int..
1. 문제분석 https://www.acmicpc.net/problem/2573 2573번: 빙산 첫 줄에는 이차원 배열의 행의 개수와 열의 개수를 나타내는 두 정수 N과 M이 한 개의 빈칸을 사이에 두고 주어진다. N과 M은 3 이상 300 이하이다. 그 다음 N개의 줄에는 각 줄마다 배열의 각 행을 www.acmicpc.net 앞서 본 치즈랑 비슷하지만 오히려 더 쉬운문제다. 1시간마다 4방향으로 바닷물과 접촉한다면 접촉한 수만큼 빙산의 크기를 1씩 낮춘다. 그 다음, 4방향으로 연결된 빙하의 개수가 2개 이상이면 그때 시간을 표시한다. 만약 시간내에 2개 이상으로 안나오면 0으로 표시한다. 필자는 델타탐색 + BFS로 문제를 해결했다. 녹지 않았을 때 BFS를 통해 빙하의 개수를 구하고 visite..