본문 바로가기

전체 글256

[Kotlin, S5] 백준 30010번 잘못된 버블정렬 잘못된 버블정렬(30010번)Silver 5#애드 혹 #해 구성하기https://www.acmicpc.net/problem/30010 문제 내용  문제 접근위 문제에 잘못된 방식으로 구현된 버블 정렬 함수가 있다.이 함수를 이용해 버블 정렬을 했을 때, 올바르게 정렬되지 않는 리스트를 출력하면 된다. 먼저 버블 정렬이 어떻게 이루어지는지 알아야 한다.버블 정렬은 현재 위치에서 자신의 앞의 값을 확인해서 자신보다 값이 작을 경우 서로의 값을 교환하는 방식으로 구현을 한다.물론 1번의 사이클로는 정렬이 바로 안 되는 경우가 많기 때문에 정렬할 List의 크기만큼 반복해 주면 정렬을 마칠 수 있다. size가 5인 List를 4번의 사이클을 돌아 정렬을 완료한 부분이다.현재 자신의 앞의 값을 확인하고 있기 때.. 2024. 8. 17.
[Android, 내일배움캠프] 공부일지(2024-08-16) 오늘 공부한 내용 정리(2024년 8월 16일)  알고리즘 문제풀이논리학 교수(Silver 5, 1813번)https://rkdrkd-history.tistory.com/198 [Kotlin, S5] 백준 1813번 논리학 교수논리학 교수(1813번)Silver 5#애드 혹 문제 내용  문제 접근입력받는 숫자가 i이면 i개의 말은 참이다라는 뜻이다.i개의 말이 참이 되기 위해서는 i가 2라면 2개의 말이 참이 되어 있어야 한다. 그렇rkdrkd-history.tistory.com  개인 공부팀 프로젝트 검색 API 결과 RecyclerView로 띄우기공부 내용 간단 정리https://rkdrkd-history.tistory.com/199 [Android] ViewModel과 UiState를 이용해 상황에.. 2024. 8. 16.
[Android] ViewModel과 UiState를 이용해 상황에 맞는 화면 띄우기 (1) 내일배움캠프 앱 개발 심화 팀 프로젝트 서론이제 본격적으로 부트캠프에서 앱 개발하고 나서 발생한 문제의 해결 과정과 새로 알게 된 기능 정리 및 알고 있던 개념 복습 차원에서 개발 기록 포스팅을 남기도록 하겠다.기능 개발이 끝나고 나서 포스팅을 작성할 것이기 때문에 매일 올라오지는 않는다 :)  UiState란?uiState는 자신이 직접 state를 만들어서 현재 앱이 어떤 상태인지 직접적으로 알 수 있게 해주는 역할을 한다.대체로 UiState는 sealed class를 이용해서 구현한다.sealed class SearchUiState { data class Success(val searchResultModel: SearchResultModel): SearchUiState() data ob.. 2024. 8. 16.
[Kotlin, S5] 백준 1813번 논리학 교수 논리학 교수(1813번)Silver 5#애드 혹 문제 내용  문제 접근입력받는 숫자가 i이면 i개의 말은 참이다라는 뜻이다.i개의 말이 참이 되기 위해서는 i가 2라면 2개의 말이 참이 되어 있어야 한다. 그렇지 않으면 이 문장은 거짓이 된다.다르게 말하면 "정확하게 2개의 문장이 참이다." 라는 말은 입력받은 말들 중에서 2개만 참일 때만 참이 된다. 그러므로, 입력값(i)의 빈도 수가 같은 경우는 참이 되게 된다.하지만 고려해야 할 사항이 있다. 모순(-1)인 경우와 모순이 아니지만 참이 하나도 없어서 0인 경우이다.-1인 경우는 입력 예제 2의 경우이다.10위의 경우에는 "정확하게 0개의 문장이 참이다." 라고 말하는 문장이 1개가 있다고 말하기 때문에 모순적이다라고 하는 듯하다. 정답이 0인 경우.. 2024. 8. 16.
[Kotlin, B1] 백준 1952번 달팽이2 달팽이 2(1952번)Bronze 1#수학 #구현 #시뮬레이션https://www.acmicpc.net/problem/1952 문제 내용  문제 접근M * N의 2차원 리스트를 시계 방향으로 돌면서 꺾인 지점이 총 몇 개인지 구하는 문제이다.주의해야 하는 점은 한 번 지난 부분은 다시 지나지 못한다는 것이다.수학적으로 규칙을 찾아서 해결하는 방법이 있지만, 멍청한 관계로 무지성 전체 탐색을 할 것이다. 2차원 리스트를 boolean형으로 생성하면 한 번 지난 부분을 true로 설정하고 조건을 달면 돼서 한 번 지난 부분을 체크할 때 편하다.  문제 해결 코드더보기import java.io.BufferedReaderimport java.io.InputStreamReaderfun main() = with(B.. 2024. 8. 14.
[Android, 내일배움캠프] 공부일지(2024-08-13) 오늘 공부한 내용 정리(2024년 8월 13일)  코드카타 문제풀이N과 M(1)(Silver 3, 15649번)https://rkdrkd-history.tistory.com/195 [Kotlin, S3] 백준 15649번 N과 M(1)N과 M(1)(15649번)Silver 3#백트래킹 문제 내용  문제 접근백트래킹을 이용해 해결 가능하다.완전탐색으로도 해결할 수 있지만 백트래킹을 쓰는 게 공부에 도움이 될 것 같다. 1부터 n까지의 자연수rkdrkd-history.tistory.com  면접 용어 정리면접 용어 정리 1일 차운영 체제(Operating System)운영 체제는 사용자가 컴퓨터를 쉽게 다룰 수 있게 해주는 인터페이스이다.하드웨어와 소프트웨어를 관리하는 소프트웨어의 전체를 뜻함. Androi.. 2024. 8. 13.
[Kotlin, S3] 백준 15649번 N과 M(1) N과 M(1)(15649번)Silver 3#백트래킹 문제 내용  문제 접근백트래킹을 이용해 해결 가능하다.완전탐색으로도 해결할 수 있지만 백트래킹을 쓰는 게 공부에 도움이 될 것 같다. 1부터 n까지의 자연수 중 중복 없이 m개를 고르는 모든 경우를 출력한다.백트래킹의 개념부터 간단하게 이야기하겠다. 백트래킹은 일자로 쭉 내려가다가 정답이 아님이 확실시되면 이전으로 돌아와서 다시 다른 경로로 검색을 시작하는 방법이다.간단하게 사진으로 진행 과정을 봐보자. 처음에는 0 -> 1 -> 3으로 이동하면서 탐색한다. 3에 도달하면 더 깊게 들어갈 수 없기 때문에 부모 노드로 다시 이동해서 다른 경로로 재탐색하는 방식이다. 부모 노드로 돌아가는 방법은 자식까지 dfs로 특정 깊이까지 들어가고 나면 저장하면서 방문.. 2024. 8. 13.
[Kotlin, 내일배움캠프] 공부일지(2024-08-12) 오늘 공부한 내용 정리(2024년 8월 12일)  코드카타 문제풀이뱀 사다리 게임(Gold 5, 16928번)https://rkdrkd-history.tistory.com/193 [Kotlin, G5] 백준 16928번 뱀과 사다리 게임뱀과 사다리 게임(16928번)Gold 5#그래프 이론 #그래프 탐색 #너비 우선 탐색https://www.acmicpc.net/problem/16928 문제 내용  문제 접근1부터 100번째 칸까지 존재하는 뱀과 사다리 게임판이 존재할 때, n개rkdrkd-history.tistory.com   개인 공부팀 프로젝트 UI 구성팀 프로젝트 아이디어 구성 및 UI 구성팀원들과 프로젝트를 하는 주간이 왔다.공통 주제가 youtube 만들기인데 이를 토대로 팀만의 앱을 만들어야.. 2024. 8. 12.
[Kotlin, G5] 백준 16928번 뱀과 사다리 게임 뱀과 사다리 게임(16928번)Gold 5#그래프 이론 #그래프 탐색 #너비 우선 탐색https://www.acmicpc.net/problem/16928 문제 내용  문제 접근1부터 100번째 칸까지 존재하는 뱀과 사다리 게임판이 존재할 때, n개의 사다리와 m개의 뱀이 있다.사다리를 밟으면 위로 이동하고 뱀을 밟으면 아래로 내려간다.입력 예제 1을 예로 들면3 732 6242 6812 9895 1397 2593 3779 2775 1949 4767 17사다리가 3개, 뱀이 7개 있고 2번째 줄부터 순서대로 사다리, 뱀을 입력받는다.숫자 2개가 있는데, 사다리 32 62를 예로 들면 32를 밟게 되면 62로 이동하고, 4번째 줄인 뱀 95 13의 경우는 95를 밟으면 13으로 내려간다. 주사위를 적게 돌리.. 2024. 8. 12.
[Kotlin, S1] 백준 11403번 경로 찾기 경로 찾기(11403번)Silver 1#그래프 이론 #그래프 탐색 #최단 경로 #플로이드-워셜https://www.acmicpc.net/problem/11403 문제 내용  문제 접근그래프에서 정점의 개수 N이 주어진다.입력 리스트 크기는 N * N이고, 한 줄에 정점이 여러 개이거나 없을 수도 있다.i번째 줄에 정점이 있으면 i번째 줄의 j번째 데이터에 있을 건데, j번째 줄의 입력값으로 가서 정점이 존재하는지 확인하는 작업을 해야 한다.자세하게 설명하자면, 입력 예제 2를 예로 들겠다.70 0 0 1 0 0 0 // 30 0 0 0 0 0 1 // 60 0 0 0 0 0 0 //0 0 0 0 1 1 0 // 4, 51 0 0 0 0 0 0 // 00 0 0 0 0 0 1 // 60 0 1 0 0 0 .. 2024. 8. 11.
[Kotlin, S1] 백준 6064번 카잉 달력 카잉 달력(6064번)Silver 1#수학 #브루트포스 알고리즘 #정수론 #중국인의 나머지 정리https://www.acmicpc.net/problem/6064 문제 내용  문제 접근카잉 제국의 달력 형식은 x : y 형식으로 이루어져 있고 x, y를 정하기 위해 m, n을 사용한다.위 문제 설명을 해석해 보자면 x m = 12일 때 x가 12가 되면 1로 초기화된다는 뜻이다. 이는 x가 1부터 12까지 반복된다는 뜻이다. y도 마찬가지이다.이 사실을 알았으면 눈치가 빠른 분들은 규칙 파악에 성공했을 것이다. 그럼 바로 코드를 작성하러 가시면 된다. 예를 들어 m = 10이고, n = 12일 때 마지막 해는 60이다.m이 10이면 x는 1부터 12를 반복해서 돌게 되고 y도 1부터 10까지 돌게 된다.해.. 2024. 8. 11.
[Kotlin] 공부일지(2024-08-09) 오늘 공부한 내용 정리(2024년 8월 9일)  알고리즘 문제풀이정수 직사각형(SIlver 5, 9196번)https://rkdrkd-history.tistory.com/188 [Kotlin, S5] 백준 9196번 정수 직사각형정수 직사각형(9196번)Silver 5#브루트포스 알고리즘 #정렬 #런타임 전의 전처리 문제 내용  문제 접근문제에서의 직사각형의 크기를 판별하는 방법은 2가지이다.1. 대각선이 더 긴 직사각형이 더rkdrkd-history.tistory.com   FA수의 진(SIlver 3, 31883번)https://rkdrkd-history.tistory.com/189 [Kotlin, S3] 백준 31883번 FA수의 진FA수의 진(31883번)Silver 3#수학 #구현 #그리디 알고.. 2024. 8. 9.
[Kotlin, S3] 백준 31883번 FA수의 진 FA수의 진(31883번)Silver 3#수학 #구현 #그리디 알고리즘 #시뮬레이션 문제 내용  문제 접근입력이 순서대로 주어진다.횡단보도를 건너는 시간, 육교를 건너는 시간, 횡단보도가 초록불인 시간, 횡단보도가 빨간불인 시간위 순서대로 입력이 주어지는데, 횡단보도와 육교 중 더 시간이 적게 걸리는 방법을 찾아서 이용해야 한다. 그래야 최솟값을 구할 수 있으니. 횡단보도의 빨간불인 시간과 초록불인 시간을 판단을 잘해야 한다.입력 예제 중 1가지의 예시를 불러와 보겠다.1 2 2 4초록불인 시간은 2분이고, 빨간불인 시간은 4초다.이 에시를 보면 2분이 경과했을 때 횡단보도를 건널 수 있게 생겼지만 건너면 안 된다.정확히 2분이 되는 순간 빨간불이 되기 때문에 기다려야 한다.표로 나타내 보면 다음과 같다.. 2024. 8. 9.
[Kotlin, S5] 백준 9196번 정수 직사각형 정수 직사각형(9196번)Silver 5#브루트포스 알고리즘 #정렬 #런타임 전의 전처리 문제 내용  문제 접근문제에서의 직사각형의 크기를 판별하는 방법은 2가지이다.1. 대각선이 더 긴 직사각형이 더 큰 직사각형이다.2. 대각선의 길이가 같으면 높이가 더 높은 것이 더 큰 직사각형이다.이 2가지 조건을 이용해 입력받는 직사각형보다 큰 직사각형 중 가장 작은 직사각형을 출력해야 한다. 문제 조건이 직사각형 값이 150을 넘지 않는다고 한다. 이러면 전체 탐색을 해도 상관없는 제한이다.그래서 높이와 너비가 1부터 150까지의 직사각형들을 모두 뽑아서 정렬시키면 된다.하지만 문제에 조건이 있다. 1. 너비(w)가 높이(h) 보다 커야 한다.2. 직사각형만을 뽑아야 한다.위 2가지의 조건을 코드로 구현해 보자.. 2024. 8. 9.
[Kotlin, S5] 백준 1340번 연도 진행바 연도 진행바(1340번)Silver 5#구현 #문자열 #파싱 문제 내용  문제 접근날짜가 분까지 입력되기 때문에 진행도의 단위를 하루(365)로 정해서 진행도를 구하면 안 된다.하루에서 더 쪼개서 분으로 정해서 진행도를 구해야 한다. 하루를 분으로 변환하면 1440분이다. 백분율을 구하는 공식은 쉽다.입력받은 날짜가 1월 1일에서부터 얼마나 지난 날짜인지 구한 다음에, hour를 60을 곱해 더해주고, 분을 더해주면 1년에서 분을 기준으로 얼마나 지났는지 알 수 있다.이를 구해 365 또는 366으로 나눠서 100을 곱하면 정답이 된다.365 말고 366을 쓰는 이유는 윤년을 의식하기 위해서이다. 윤년은 2월이 29일까지 있기 때문에 하루가 더 길다.1월 1일로부터 얼마나 시간이 지났는지 분으로 환산한 .. 2024. 8. 8.
728x90