TIL : 2023-08-10

이슬비·2023년 8월 10일
0

TIL

목록 보기
26/88

TIL : 스파르타코딩 Android 과정 7기

주의점

  • 매일 : TIL : today I learned 작성하기
  • github에 이슈 추가, 관리
  • github에 push 하기
  • 주석 잘 적어 넣기

학습 목표 :

  • Android 앱개발을 위한 개발도구인 Android Studio 활용을 통해 프로젝트 생성하고 실습을 통해 숙달합니다.
  • Kotlin 문법을 활용해 Android 앱개발에 적용할 수 있습니다.
  • 안드로이드 UI기본 개념 및 설계 방법을 이해할 수 있습니다.
  • 안드로이드 UI기본 요소인 다양한 위젯(Widget)의 설정 방법을 이해하고 활용할 수 있습니다.
  • 안드로이드 UI요소를 배치하는 레이아웃(Layout)의 기능 및 설정 방법을 이해할 수 있씁니다.
  • Margins/Padding/Gravity의 설정 방법을 이해하여, UI의 미세한 설정을 제어할 수 있습니다.
  • 실습 및 개인 과제 학습을 통해 배운 개념 및 UI요소를 적용해볼 수 있습니다.

오늘 계획 :

  • 오전
    • 09:00 ~ 10:00 : 오늘 계획 확인하기 + 팀 회의
      • 오늘 계획 (Task)
        • 팀 회의
        • TIL 작성하기
        • 후발대 강의 듣기
        • 복습하기
        • 클래스 관계 정리
        • 알고리즘 문제 2개 풀기
    • 10:00 ~ 12:00 : 복습하기
      • 복습하기 : 1주차
      • 복습하기 : 2주차
  • 집중 코딩
    • 13:00 ~ 16:00
      • 복습하기 : 3주차
    • 15:00 ~ 16:00 : 후발대 강의
      • 강의 듣기
    • 16:00 ~ 18:00
      • 복습하기 : 4주차
  • 저녁
    • 19:00 ~ 20:00 : 알고리즘 문제 풀기
      • 문제 1 : 하샤드 수
      • 문제 2 : 최댓값과 최솟값
    • 20:00 ~ 21:00 : 마무리 회고 진행
      • TIL 작성하기 : velog

요점 정리 :

5. 클래스 관계 (Class Relationships)

클래스 관계

Dependency 의존관계

A 클래스가 B클래스를 일시적으로 참조하는 형태
예)A클래스의 어느 함수내부에서 B클래스 인스턴스를 생성하고 함수 종료후 그 인스턴스는 소멸.

Association 연관관계

일시적으로 사라지는 관계가 아닌 클래스 필드로 가지고 있는 형태
예)A클래스의 변수로 클래스 B 인스턴스를 정의. A클래스 함수 내에서 B인스턴스의 함수를 자유롭게 사용.

Aggregation 집합관계

연관 관계이면서 클래스 A가 없어도 클래스 B는 존재

Composition 합성관계

연관 관계이면서 클래스 A가 없으면 클래스 B도 없음.

Inheritance 상속관계

상위 클래스와 하위 클래스로 나누어 상위 클래스의 멤버(필드, 메서드, 이너 클래스)를 하위 클래스와 공유하는 것을 의미함.

타임 스탬프 :

특정한 시각을 나타내거나 기록하는 문자열이다. 둘 이상의 시각을 비교하거나 기간을 계산할 때 편리하게 사용하기 위해 고안되었으며, 일관성 있는 형식으로 표현된다.

사용 기능 :

val s: String = "1 2 3 4"
val stringArray = s.split(" ")
// {"1", "2", "3", "4"}

알고리즘 :

//코딩테스트 연습 > 연습문제 > 하샤드 수
class Solution {
    fun solution(x: Int): Boolean {
        var answer = true
        val s = x.toString()
    var h = 0
    for (i in s){
        h += i.toString().toInt()
    }

    answer = x%h==0
        return answer
    }
}
//다른 사람의 풀이
class Solution {
    fun solution(x: Int): Boolean {
        return x % x.toString().fold(0){acc, c -> acc + c.toInt() - 48} == 0
    }
}

//코딩테스트 연습 > 연습문제 > 최댓값과 최솟값
class Solution {
    fun solution(s: String): String {
        var answer = ""

        var array = s.split(" ")
    var intArray = intArrayOf()

    for(i in array){
        intArray = intArray.plus(i.toInt())
    }

    intArray.sort()

    answer += intArray[0]
    answer += " "
    answer += intArray[intArray.size-1]

        return answer
    }
}
//다른 사람의 풀이
class Solution {
    fun solution(s: String): String = s.split(" ").map { it.toInt() }.let { "${it.min()} ${it.max()}" }
}

팀(or 개인) 프로젝트 :

다음주 : 팀 프로젝트 시작

아쉬운 점 or 앞으로의 계획:

개인 프로젝트 시작하기

profile
개발꿈나무

0개의 댓글