내일배움캠프 40

[Android] TIL 34일차

★ 리사이클러 뷰(RecyclerView)* 리사이클러 뷰란?- 리스트 형태의 데이터를 표시하는데 사용되는 위젯- View를 재활용해서 사용 * 리스트 뷰와 리사이클러 뷰의 차이 ListView사용자가 스크롤 할 때마다 위에 있던 아이템 삭제, 맨 아래의 아이템은 생성되는 걸 반복아이템이 100개면 100개 전부 삭제 및 생성되고 반복하여 성능에 좋지 않음RecylcerView사용자가 스크롤 할 때, 위에 있던 아이템이 재활용돼서 아래로 이동한 후 재사용 함아이템이 100개면 10개정도의 View만 만들고 이 10개를 재활용해서 사용결론적으로 ListView의 단점을 보완한 것 Recycler View 사용하기Adapter데이터 테이블을 목록 형태로 보여주기 위해 사용되는 것데이터를 다양한 형식의 리스트..

[Android] TIL 33일차

28. 엄마의 건강검진 결과, 대사증후군 레벨은 어디에 해당될까요? * 조건1. (성별 : 여성, 허리둘레 : 80, 수축기혈압 : 142, 이완기혈압 : 83, 혈당 : 110, 중성지방 : 140 , 고밀도지단백콜레스테롤 : 52)2. 대사증후군 레벨 : 위험인자 3개 이상이면 대사증후군, 1~2개 주의군, 미해당 정상군입니다. 위험인자는 5가지 입니다. 3. 허리둘레 : 남성 90이상,여성 85이상, 혈압 : 수축기혈압 130이상, 이완기혈압 90이상4. 혈당 : 공복혈당 100이상, 중성지방 : 150이상,고밀도 지단백 콜레스테롤 : 남성 40미만, 여성 50미만* 혈압은 둘 중 하나만 수치 이상이어도 체크함 fun main(){ print("성별 : ") val gender = rea..

[Android] TIL 32일차 - 2

뷰 바인딩(View Binding)- 뷰 바인딩은 findViewById 기능을 대체- 뷰 바인딩을 사용하기 위해선 시작 전에 셋팅을 미리 해둬야 함 * View Binding과 findViewById 차이- NullSafe : 파인드뷰와 달리 참조되는 걸 자동으로 가져옴, 직접 ID를 치지 않아서 널 포인터 예외 발생 위험이 없음- Type Safety : 타입도 선언하지 않아도 되어서 예외 발생 위험이 없음 * gradle(module : app) 셋팅 (android 내부에 작성)buildFeatures{ viewBinding = true } * 뷰 바인딩을 사용하는 Activity 셋팅class MainActivity : AppCompatActivity() { //1번 p..

회고록

팀 프로젝트 마무리 회고록KPT KeepLive coding : 실시간으로 진척도를 확인하여 진행속도를 맞출 수 있고 팀내 어려움에 신속히 대응 할 수 있기 때문나무보단 숲 : 개별적으로 제작하고 합치는게 아니라 경계를 유연하게 두고 서로의 업무를 보완하여 전체적인 조화와 양질의 완성을 이루어낼 수 있기 때문스크럼 : 지식 수준의 차이를 극복할 수 있도록 화면공유로 이해하기 쉽게 설명해주고 다양한 시각에서 문제를 바라보고 혜안을 나눌 수 있기 때문 Problem로그인 필요성에 대한 의문마이페이지에 히스토리를 추가해 계정의 개성을 살려 보완했다.메뉴만 나열돼 메뉴 추천의 목적성 상실오늘의 추천 메뉴를 최상단에 제안하여 목적에 부합하도록 변경했다. Try라이브 코딩을 지속적으로 할 예정Pull Request..

[Android] TIL 31일차

반복문과 조건문 타파하기 1. 1~100의 숫자중 2의 배수이면서 3의배수(and조건)인 숫자 출력해주세요fun main(){ for(i in 1..100){ if(i%2==0 && i%3==0) println(i) }}  2. 1~100까지 정수 중 홀수의 합을 출력해 주세요. [입력: X, 출력: 2500]fun main(){ var answer = 0 for(i in 1..100){ if(i%2!=0) answer += i } print("1부터 100까지 홀수의 합 : ${answer}")}  3. 4. 1에서 9까지 한 자리 자연수 입력 시 그 수만큼 반복된 문자열 출력 (입력: 3 -> 출력: 33..

[Android] TIL 28일차

과제 : 조건문과 반복문 문제 작성 1. 사용자로부터 하나의 정수를 입력받고 해당 숫자의 모든 약수를 배열 형태로 나타내시오fun main() { print("숫자를 입력하세요 : ") val number = readLine()!!.toInt() var answer = arrayListOf() for(num1 in 1..number) { if (number%num1 ==0){ answer.add(num1) } } print(answer)}  2. 사용자로부터 숫자를 입력받고 해당 숫자가 3의 배수인지 5의 배수인지 둘 다 아닌지 판별하는 코드를 작성하시오(0 입력 시 다른 숫자를 입력하라는 문구가 나오도록 출력)fun main(..

[Android] TIL 27일차

람다 * 람다- 람다는 이름을 가질 필요 없는 익명 함수 * 람다 구조 예시val sum2 : (Int, Int) -> (Int) = { x, y -> print("x + y =") x + y } * 람다 구조 설명//변수 sum 선언 옆1. (Int, Int) : 람다의 입력 변수 자료형2. -> (Int) : 람다의 출력 변수 자료형//중괄호 내부3. x, y : 입력 변수4. print문과 x+y는 본문 (x+y : 반환값)-> 입, 출력 변수  부분은 생략이 가능함 * 람다 구조 예시2(입출력 변수 타입 생략)val sum2 = { x:Int, y:Int -> print("x + y =") x + y }-> x와 y 변수 옆에 자료형 ..

[Android] TIL 26일차

숨어있는 숫자의 덧셈(1)문제 : 문자열 my_string이 매개변수로 주어집니다. my_string안의 모든 자연수들의 합을 return하도록 solution 함수를 완성해주세요. 조건 : my_string 소문자, 대문자 그리고 한자리 자연수로만 구성되어있습니다. 문제 풀이class Solution { fun solution(my_string: String): Int { var answer = 0 //배열형태로 변경 var input = my_string.toCharArray() for(i in input){ //isLowerCase와 isUpperCase를 이용하여 대, 소문자를 제외한 숫자 형식의 문자들만 출력 ..

[Android] TIL 25일차

배열 자르기 문제 : 정수 배열 numbers와 정수 num1, num2가 매개변수로 주어질 때, numbers의 num1번 째 인덱스부터 num2번째 인덱스까지 자른 정수 배열을 return 하도록 solution 함수를 완성해보세요 * 초기 코드class Solution { fun solution(numbers: IntArray, num1: Int, num2: Int): IntArray { var answer: IntArray = intArrayOf() return answer }}  배열 및 리스트 자르기 방법은 총 3가지 * slice, sliceArray()Array나 List를 원하는 구간만 잘라서 새로운 List를 만들고 싶을 때 사용원본 객체는 변경되지 ..