본문 바로가기

전체 글126

[2023-05-02] 9095 1, 2, 3 더하기(Kotlin) + 14문제 문제 링크: https://www.acmicpc.net/problem/9095 9095번: 1, 2, 3 더하기 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. www.acmicpc.net 제가 이해력이 부족한 건지.. 저는 합으로 나타내는 방법의 수를 구하라 하길래, n이 1일 경우: 0 n이 2일 경우: 1 -> 1 + 1 위와 같은 줄 알았습니다. 결국 규칙을 찾지 못해 해답을 보고 나서야, 1일 경우: 1 -> 1 2일 경우: 2 -> 1 + 1, 2 라는 사실을 알 수 있었습니다. // 이전 것 3개를 더하면 된다. // 1 2 3 4 5 6 // 1 2 4 7 13 24 // 7 = 1 + 2 + 4 // 13 = 2 + 4 + 7 // ... package.. 2023. 5. 2.
[2023-05-01] 12865 평범한 배낭 (Kotlin) + 1문제 문제 링크: https://www.acmicpc.net/problem/12865 12865번: 평범한 배낭 첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000)가 주어진다. 두 번째 줄부터 N개의 줄에 거쳐 각 물건의 무게 W(1 ≤ W ≤ 100,000)와 해당 물건의 가치 V(0 ≤ V ≤ 1,000) www.acmicpc.net 첫 번째 시도입니다. 문제 유형을 보지 않고 풀었고, dfs를 이용하였습니다. package thirtyFirst import java.io.* fun main(){ val br = BufferedReader(InputStreamReader(System.`in`)) val (n,k) = br.readLine().spli.. 2023. 5. 1.
[2023-04-30] 1193 분수찾기 + 3문제 문제 링크: https://www.acmicpc.net/problem/1193 1193번: 분수찾기 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. www.acmicpc.net // 숫자 1이 분모일 때는 1개 // 숫자 2가 분모일 때는 2개 // 숫자 3이 분모일 때는 3개 // 분모가 짝수일 때 왼쪽 하단으로 이동 // 분모가 홀수일 때 오른쪽 상단으로 이동 // 반복문을 통해, 입력받은 숫자가 영역에 포함 될 경우를 구하기 // ex) x가 분모가 3인 영역에 포함될 경우 // x는 4 ~ 6사이에 있음 // 분모의 짝수, 홀수 판별 package twentyFirst_thirtyth.thirtyth import java.io.* fun main(){ val br = Buffered.. 2023. 4. 30.
[2023-04-29] 1003 피보나치 함수(Kotlin) + 8문제 문제 링크: https://www.acmicpc.net/problem/1003 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net // 0의 횟수와 1의 횟수를 구하는 것이므로 Pair를 이용 // 바로 직전의 index의 횟수와, 이전의 이전 index의 횟수를 더한 값을 dp 배열에 저장 package `twenty nineth Day` import java.io.* fun main(){ val br = BufferedReader(InputStreamReader(System.`in`)) val t = br.readLine().toInt() repeat(t){ val n = br.readLine().toIn.. 2023. 4. 29.
[2023-04-28] 가장 긴 바이토닉 부분 수열(Kotlin) + 13 문제 dp 문제를 풀다가 멘붕이 왔습니다. 자존감도 올릴 겸, 문제 순위 페이지에서 중간중간 빼먹은 문제들을 풀었습니다. 문제 링크: https://www.acmicpc.net/problem/11054 11054번: 가장 긴 바이토닉 부분 수열 첫째 줄에 수열 A의 크기 N이 주어지고, 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ N ≤ 1,000, 1 ≤ Ai ≤ 1,000) www.acmicpc.net 어제 풀었던 11052번인 "가장 긴 증가하는 부분" 문제와 비슷한 문제였습니다. package `twenty eighth Day` import java.io.* fun main(){ val br = BufferedReader(InputStreamReader(System.`in`)) val.. 2023. 4. 28.
[2023-04-27] 11053 가장 긴 증가하는 부분(Kotlin) 문제 링크: https://www.acmicpc.net/problem/11053 11053번: 가장 긴 증가하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이 www.acmicpc.net 오늘에야 쌓여있던 일이 끝났습니다. 한 달 동안은 알고리즘 풀이에 집중할 수 있을 것 같아요. // 횟수를 저장할 dp 배열을 생성 // 이전의 값보다 작은 수 일 경우, // 처음 부터 현재 값의 이전까지 반복문을 돌며 // 현재 값보다 작은 값들 중 가장 큰 값의 횟수 구한다. // 해당 값의 +1을 해.. 2023. 4. 27.
[Android] #10-1 리사이클러뷰 동작 원리 앱에서 채널을 클릭 시, 해당 채널에 관한 창이 떠야 합니다. 해당 채널의 정보(배너, 설명, 동영상 개수)가 상단에 위치하며, 채널의 존재하는 영상들은 하단에 위치하여 스크롤을 통해 영상들을 로딩할 수 있어야 합니다. 따라서 스크롤 뷰 안에, 채널 정보를 위한 뷰, 영상을 위한 리사이클러뷰를 넣은 구조로 xml 파일을 작성했었습니다. 스크롤이 중첩되는 현상을 방지하기 위해 recyclerView의 nestedScrollingEnabled 속성을 false로 설정하였습니다. 스크롤 뷰에 스크롤 리스너를 추가하여, 바닥까지 스크롤이 되었을 경우, 다음 데이터를 받아와 리사이클러뷰에 추가해 주는 방식으로 코드를 작성했습니다. fun initView(){ binding.channelTitle.text = ch.. 2023. 4. 27.
[2023-04-25] 2156 포도주 시식(Kotlin) 문제 링크: https://www.acmicpc.net/problem/2156 2156번: 포도주 시식 효주는 포도주 시식회에 갔다. 그 곳에 갔더니, 테이블 위에 다양한 포도주가 들어있는 포도주 잔이 일렬로 놓여 있었다. 효주는 포도주 시식을 하려고 하는데, 여기에는 다음과 같은 두 가지 규 www.acmicpc.net 오랜시간 고민을 했지만 결국 풀지 못했고, 또 다른 분의 코드를 참고하였습니다.. 참고 링크: https://hanyeop.tistory.com/287 package twentyfivethDay import java.io.* import java.util.* import kotlin.math.max fun main() = with(Scanner(System.`in`)){ val n = .. 2023. 4. 25.