본문 바로가기

전체 글94

[프로그래머스] 보석 쇼핑 자바 문제 코딩테스트 연습 - 보석 쇼핑 ["DIA", "RUBY", "RUBY", "DIA", "DIA", "EMERALD", "SAPPHIRE", "DIA"] [3, 7] programmers.co.kr 문제 풀이 ✔️ 알고리즘 1. Set 자료구조를 이용하여 보석의 종류 개수를 구함. 2. gems배열을 편하게 카운팅 하기 위하여 HashMap으로 보석이름과 인덱스를 매칭해줌 3. gems배열을 순회하면서 모든 종류의 보석을 담았을 경우 인덱스 갱신해줌 - sidx, eidx 둘 다 처음으로 지정한 후 모든 보석의 종류를 담을 때까지 eidx를 증가한다. - 이 때, 증가하면서 나온 보석들을 종류별로 카운팅해주는데 sidx를 다음 값으로 옮겼을 때, 같은 보석일 경우 바로 갱신을 해주고, 다른 보석일 경.. 2022. 4. 25.
[백준] 2461번 대표 선수 자바 문제 2461번: 대표 선수 입력의 첫 번째 줄에는 학급의 수를 나타내는 N과 각 학급의 학생의 수를 나타내는 M이 하나의 빈칸을 사이에 두고 주어진다. 단, 1 ≤ N, M ≤ 1,000이다. 두 번째 줄부터 N개의 줄에는 각 줄마다 한 www.acmicpc.net 문제 풀이 학급 대표선수 간 최대 최소 차가 최소가 되기위해서는 최대한 비슷한 값끼리 묶여있어야 하므로 모든 학생들을 학급 표시만 해둔 채로 정렬시켰다. 그리고 두 개의 인덱스 변수로 첫번째 선수를 마킹해두고, 뒤로 가면서 모든 학급이 다 찰때까지 두번 째 인덱스를 증가시켜 나갔다. 그 때의 최솟값을 갱신하면서 첫번째 인덱스를 증가하면서 나갔는데 시간초과가 떴다. 이를 개선하기 위해서 한 학급에서 나온 대표선수를 표시해두기 위해 boolea.. 2022. 4. 25.
[안드로이드/Kotlin] BottomSheetDialog 사용 BottomSheetDialog 아래에서 올라오는 알림창/팝업창. 아래에서 올라오는 Dialog창이라고 생각하면 될 것 같다. 1. gradle에 해당 라이브러리 추가하기 - 라이브러리 버전 확인 implementation 'com.google.android.material:material:1.3.0-alpha01' 2. 다이얼로그의 화면 프래그먼트 작성 - https://ddolcat.tistory.com/86 android:drawableLeft를 사용한 아이콘 이미지 사이즈 조절 2022. 4. 24.
[안드로이드] ImageView, Button 모서리 둥글게 하기 1. xml파일로 커스텀 1) Drawable폴더에 resource xml파일 생성 후 코드 작성 2) 버튼에 적용 2. 카드뷰 위젯 사용 1. CardView : 이미지뷰의 모서리를 손쉽게 둥글게 해줄 수 있는 위젯 → app:cardCornerRadius : 모서리의 둥근 정도를 조절 → app:cardElevation :Shadow효과 → app:cardBackgroundColor : 카드뷰 배경화면 설정 2022. 4. 24.
[백준] 20365번 블로그2 자바 문제 20365번: 블로그2 neighbor 블로그를 운영하는 일우는 매일 아침 풀고 싶은 문제를 미리 정해놓고 글을 올린다. 그리고 매일 밤 각각의 문제에 대하여, 해결한 경우 파란색, 해결하지 못한 경우 빨간색으로 칠한 www.acmicpc.net 문제 풀이 어차피 연속된 색깔은 한 번에 가져와서 처리할 수 있으므로 연속된 색깔을 묶어줘야 한다. 'BBRBRBBR' → 'BRBRBR' 로 생각해서 처리해도 된다는 말이다. 처음에 char배열을 이용해서 첫 값을 넣고 그 뒤 값부터 반복을 돌면서 문자가 다를경우에만 체크해서 배열에 넣어줬다. 근데 생각해보니 어차피 연속되지 않으니까 무조건 brbr... 또는 rbrb...이런식으로 갈텐데 굳이 문자를 다시 압축해서 가지고 있을 필요가 없었음.. 따라서 .. 2022. 4. 20.
[백준] 17472번 다리 만들기2 자바 문제 17472번: 다리 만들기 2 첫째 줄에 지도의 세로 크기 N과 가로 크기 M이 주어진다. 둘째 줄부터 N개의 줄에 지도의 정보가 주어진다. 각 줄은 M개의 수로 이루어져 있으며, 수는 0 또는 1이다. 0은 바다, 1은 땅을 의미한다. www.acmicpc.net 문제 풀이 BFS+DFS+크루스칼 이렇게 세개를 각각 적용해서 풀었다. 문제는...더럽지만...그냥 저 3개의 알고리즘 연습하는 데는 나쁘지 않은 것 같다... 1. 각 섬들 네이밍 해주기 : 다리를 만드려면 섬이 다른 걸 알아야 하기 때문 → DFS이용 2. 각 섬을 이을 수 있는 다리의 최소비용 구하기 → BFS이용 : 이 때 다리는 한 방향으로만 나아갈 수 있기 때문에 상하좌우의 for문을 먼저 쓰고 각 방향에 대해 bfs적용 3... 2022. 4. 20.