TabLayout & ViewPager2 TabLayout TabLayout은 탭(tab)으로 구분하는 화면에서 탭 버튼을 배치하는 레이아웃이다. 보통 앱바 바로 하단에 붙어 탭 구분을 해서 여러 화면을 보여 줄 수 하게 뜸하다. 탭은 보통 상단에 위치하기에 불편한 점이 종종 있다. 바로 기기의 화면이 크면 (스마트폰 기준) 한 손으로는 탭을 터치하기가 불편하다는 점이다. 이를 해소할 수 있는 방법이 있는데 TabLayout에 ViewPager를 적용시켜 주는 것이다. ViewPager는 좌우 스크롤을 통해 화면을 넘길 수 있는 기능을 제공한다. 좌우 스크롤을 통해 손가락을 위로 올리는 불편함 없이 편한 자세로 스크롤하여 탭을 제어할 수 있다. ViewPager2 ViewPager는 좌우 스크롤을 통해 ..
문제 설명 array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해 주세요. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요. 제한 조건 arr은 자연수를 담은 배열입니다. 정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr [j]입니다. divisor는 자연수입니다. array는 길이 1 이상인 배열입니다. 입출력 예 arr divisor return [5, 9, 7, 10] 5 [5, 10] [2, 36, 1, 3] 1 [1, 2, 3, 36] 코드 class Solution { fun solution(arr: IntArray, divisor: Int) = arr.f..
일일회고 오늘은 OOP 2회 차 라이브세션과 선발대 과제를 진행하였다. 객체지향의 주요 키워드 중 하나인 다형성을 중점 해서 강의를 해주셨다. 다형성 - 업, 다운 캐스팅 등 객체지향에 있어 필수적인 내용이었다. 복습하는 것이었지만 아직도 확 와닫지 않는다. 그냥 많이 쳐보고 봐봐야 할 것 같다. 선발대 과제는 앱 화면 UI를 디자인 하는 것이었는데, 조금 더 어렵고 다양한 View들을 사용하는 것이었다. 오늘의 키워드 알고리즘 OOP 세션 선발대 과제 알고리즘 포스팅으로 대체 [programmers] 캐릭터의 좌표 문제 설명 머쓱이는 RPG게임을 하고 있습니다. 게임에는 up, down, left, right 방향키가 있으며 각 키를 누르면 위, 아래, 왼쪽, 오른쪽으로 한 칸씩 이동합니다. 예를 들어..
문제 설명 머쓱이는 RPG게임을 하고 있습니다. 게임에는 up, down, left, right 방향키가 있으며 각 키를 누르면 위, 아래, 왼쪽, 오른쪽으로 한 칸씩 이동합니다. 예를 들어 [0,0]에서 up을 누른다면 캐릭터의 좌표는 [0, 1], down을 누른다면 [0, -1], left를 누른다면 [-1, 0], right를 누른다면 [1, 0]입니다. 머쓱이가 입력한 방향키의 배열 keyinput와 맵의 크기 board이 매개변수로 주어집니다. 캐릭터는 항상 [0,0]에서 시작할 때 키 입력이 모두 끝난 뒤에 캐릭터의 좌표 [x, y]를 return하도록 solution 함수를 완성해주세요. 제한 조건 board은 [가로 크기, 세로 크기] 형태로 주어집니다. board의 가로 크기와 세로 크..
일일회고 선발대 OT가 있었다. 튜터님이 앞으로 할 과정에 대해 소개해주셨다. 개념에 대한 실습, 데이터베이스, api 연동, 코루틴, 재사용성/가독성 높은 코드, 컨벤션, 의존성주입, 단위테스트등을 해본다고 하셨다. 조금 더 어려운 개념이니 만큼 더 열심히 해야겠다. 물론 기본적인 것도 놓지 않으면서 오늘의 키워드 알고리즘 kotlin 컨벤션 xml 컨벤션 알고리즘 포스팅으로 대체 https://aaapple.tistory.com/39 [programmers] 문자열 내 마음대로 정렬하기 문제 설명 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 ..
문제 설명 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱스 1의 문자 "u", "e", "a"로 strings를 정렬합니다. 제한 조건 strings는 길이 1 이상, 50 이하인 배열입니다 strings의 원소는 소문자 알파벳으로 이루어져 있습니다. strings의 원소는 길이 1 이상, 100이하인 문자열입니다. 모든 strings의 원소의 길이는 n보다 큽니다. 인덱스 1의 문자가 같은 문자열이 여럿 일 경우, 사전순으로 앞선 문자열이 앞쪽에 위치합니다. 입출력 예 strings n return ["sun", "b..
DOING IN THIS WEEK : 주특기 입문 주차가 시작되었다. 먼저, 안드로이드에 관한 개괄적인 내용과 안드로이드 스튜디오에 관한 강의를 수강했다. 그리고 UI 및 액티비티 전환에 대해서도 강의를 수강하였다. 주중에 실시간 OOP 세션이 있어 OOP에 대해 한번 더 정리하는 시간이 있었다. 강의를 모두 수강 후 개인과제를 시작하였다. 우선 요구사항은 충족했으나 계속 조금씩 수정작업을 할 것 같다. 중간중간 알고리즘 문제도 풀어보았다. 이번주의 키워드 안드로이드 안드로이드 스튜디오 안드로이드 UI 액티비티 & 인텐트 개인 과제 FEELING : 아직은 개인 강의, 과제 주차여서 개인 학습이 많았기에 크게 어려운 점은 없었다. 다다음주 입문 프로젝트 주차에서 팀원들과 서로 얘기해 보면서 많은 것 을 ..
일일 회고 벌써 금요일이다. 이번 주도 벌써 마무리 되어간다. 강의부터 시작해서 문법, 안드로이드 공부, 과제까지 뭔가 꽤 한 것 같긴하다. 최대한 기록으로 남겨보려고는 하지만 쉽지는 않은 것 같다. 주말은 다음주를 위해 리프레쉬 해야겠다. 오늘의 키워드 개인 과제 고도화 (TextInputLayout) 개인 과제를 고도화해 보았다. 아이디나 이름, 비밀번호를 입력할 때 토스트 메시지뿐만 아니라 어디가 잘못되었는지 시각적으로 보여주고 싶었다. 그래서 TextInputLayout을 도입하였다. TextInput Layout TextInputLayout은 Linear layout을 상속받고, layout안에서 TextInputEditText에 입력된 텍스트에 반응하는 레이아웃이다 TextInputEditTe..
일일 회고 벌써 목요일이다. 알고리즘 풀고 과제하고 내용 정리하고 하나하나씩 하다 보면 시간이 훌쩍 지나가있다. 과제는 선택사항까지 완료하였다. 디자인만 좀 더 신경써보면 될 것 같다. 내일은 금요일이고 그 다음날은 주말이니 조금 더 힘내서 달려보자 오늘의 키워드 과제 톺아보기 lv1 로그인 화면 구성 및 관련 코드 작성 xml - EditText와 Button등의 위젯들을 통해서 로그인화면을 구성하였다. Layout은 Constraint layout으로 각 위젯 간 constraint를 설정하여 정렬하였다. code - 각 위젯들은 액티비티 내부에서 전역적으로 사용하기 위해 전역변수로 두고 지연초기화를 시켜주었다. private val editTextId by lazy { findViewById(R.i..
1회차 객체란 무엇인가? - 상태와 행동을 가지는 개체?? - chatGPT曰 ----> 어떤 속성이 존재하고 속성에 대한 행동을 하는 것! ex) 버스 상태 - 번호, 좌석 수, 색, 출발지, 도착지, 연료량 등등 정의 할 수 있는 값 행동 - 멈춘다, 이동한다, 시동켠다, 문을 연다 등등 수행할 수 있는 것 하지만.. 버스에는 광역버스, 시내버스, 고속버스 등 다양한 종류가 있고 버스마다 조금씩 상태와 행동이 다르다! 이것을 상속없이 구현하려면... 죄다 하나씩 구현해야함 class CityBus { val 출발 val 도착 .... } class WideBus { val 출발 val 도착 .... } class ExpressBus { val 출발 val 도착 .... } 종류는 너무많고 하나씩 다하..