본문 바로가기

분류 전체보기101

[백준] 1292번 쉽게 푸는 문제 자바 문제 1292번: 쉽게 푸는 문제 첫째 줄에 구간의 시작과 끝을 나타내는 정수 A, B(1 ≤ A ≤ B ≤ 1,000)가 주어진다. 즉, 수열에서 A번째 숫자부터 B번째 숫자까지 합을 구하면 된다. www.acmicpc.net 문제 풀이 처음에는 반복문으로 B까지의 배열을 생성해서 그냥 더해야 하나 싶었는데 뭔가 비효율적인 것 같아서 인덱스를 이용해서 풀었다. 아래와 같이 1+2+3.. 이런식으로 더해나갈 때 그 수의 마지막 인덱스 번호가 되는 것을 이용했다. 인덱스 구간 안에 A와 B가 포함될 때, 해당 숫자 값을 곱해서 answer변수에 넣어줬다. 해당 숫자 구간 안에 들어왔으면 그때의 더해진 인덱스(해당 숫자의 마지막 인덱스 번호)에서 A값을 빼면 해당 숫자를 몇 개 더해야 하는지 알 수 있다. .. 2022. 4. 25.
[프로그래머스] 보석 쇼핑 자바 문제 코딩테스트 연습 - 보석 쇼핑 ["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.