일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 최단경로
- 완전탐색
- Parcelable
- SWEA
- 백준 14501
- 백준
- hilt
- 2501
- java
- BFS
- 프로그래머스
- BuildConfig
- 조합
- dfs
- 백준 퇴사
- val
- 시뮬레이션
- Android
- 순열
- Parcelize
- imeOptions
- 자바
- 순수함수
- Kotlin
- 약수 구하기
- 오르막수
- EditorInfo
- 지능형 기차2
- 스카이라인 쉬운거
- EditText
- Today
- Total
목록알고리즘/SWEA (9)
안드 공부를 해볼까?
1. 문제분석 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWXRUN9KfZ8DFAUo SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 4변에 16진수가 적힌 보물상자가 있다. 변을 시계방향으로 한 칸 옮길 수 있고 이때 사각형에 각 변은 비밀번호가 된다. 주어진 K번째 큰 수를 10진수로 만들어 반환하는 문제다. 규칙을 보면 각 변을 스타트로 한다음 각변의 암호 개수(75E면 3개)만큼 돌아가면 다시 자기 자신이 돌아온다. 결국 답은 각 변의 암호개수만큼 돌리고 맨 마지막 수가 맨 처음으로 가면 된다. 2. 시행착오..
1. 문제분석 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PpLlKAQ4DFAUq SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 7가지의 파이프 모양을 가진 관에 탈주범이 들어갔다. 1시간에 1칸씩 움직일수 있고 주어진 시간이 지났을 때 탈주범이 어디에 있는지 경우의 수를 구하는 문제다. 보자마자 문제에서 BFS하라고 나타내고 있다. 또한 시간마다 어떤 상태인지 알아보는 것이니 모든 큐를 빼고 넣는 방식으로 구현했다. 여기서 볼 점은 파이프를 어떻게 관리하는 하는지다. 필자는 파이프를 종류별로 switch를 했..
1. 문제분석 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PpFQaAQMDFAUq SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 수영장을 다니는데 1일, 한달, 세달, 1년의 요금제가 있다. 입력으로 수영장을 얼마나 이용하는지가 주어지고 주어진 요금제를 최소한으로 사용하는 방법을 구하는 문제다. 필자는 DFS와 DP가 떠올랐다. 항상 최선의 결과가 나올 수 없으니 모든 것을 다 탐색해야하기 때문이다. DP는 달마다 최선을 구하기 때문에 둘 중 고민하다가 DFS를 선택했다. 처음 구했던 방법은 DFS를 어떻게 접..
1. 문제분석 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV597vbqAH0DFAVl SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 방향이 있는 미생물이 움직이는데 가장자리에 닿는다면 방향이 바뀌고 미생물의 크기가 반으로 줄어든다. 필자는 처음에 미생물 클래스 배열을 만들어서 모든 움직임으로 관리할려고 했다. 이렇게 되니 swap도 해야하고 미생물을 움직이는 것도 이상해져서 다른 방법을 찾아보았다. 다음은 큐를 활용해서 한개를 꺼내서 2차원 객체 배열에서 상태를 관리할려고 했다. 하지만 모든 큐를 비교하지 못했고 ..
1. 문제분석 https://swexpertacademy.com/main/code/userProblem/userProblemDetail.do?contestProbId=AWKaG6_6AGQDFARV SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 출발점에서 도착점까지 수영해서 가는 것이다. 단 3가지 조건이 존재한다. 0: 움직이기 가능, 1: 장애물(접근 불가), 2: 소용돌이(2초 간격으로 움직이기 가능, 0초..1초..2초(가능)) 최단경로를 찾는 것이니 BFS를 사용했다. 다만 위와 같은 조건에서 최단거리를 뽑기위해 조건을 준비했다. 1. 거리를 3으로 나눈 나머지가 2라면 소용돌이 통과가능 2. 거리를 ..
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..