본문 바로가기
♞ | 공부일지

[Android, 내일배움캠프] 공부일지(2024-05-10)

by immgga 2024. 5. 10.
오늘 공부한 내용 정리(2024년 5월 10일)

 

 

1. 코드카타 문제풀이

A. 문자열 내 마음대로 정렬하기

문제 내용

 

문제 풀이 방법

  • strings에서 각 string의 n번째 index를 기준으로 정렬한 결과를 return 한다.
  • n번째 index가 같은 경우에는 string의 사전 순서대로 정렬한다.(사전순으로 a, b, c, d....)

 

해결 코드(스포 주의)

더보기
// strings의 n번째 index를 기준으로 오름차순으로 정렬하기.
fun solution(strings: Array<String>, n: Int): Array<String> {
    // 우선 전체 문자열을 기준으로 정렬하기(n번째 index가 같은 경우를 해결하기 위함).
    val stringsSort = strings.sorted()
    // 정렬된 list를 n번째 index를 기준으로 정렬하기.
    val answer = stringsSort.sortedBy { it[n] }
    println(answer)

    return answer.toTypedArray()
}

 

풀이 과정

  • strings의 n번째 index가 중복되는 경우를 대비해서 미리 전체 정렬을 한 번 한다.
    미리 전체 정렬을 해주면 ["abce", "abcd", "cdx"] 리스트가 ["abcd", "abce", "cdx"]로 사전순으로 미리 정렬이 돼서 index에 해당하는 값이 같을 경우 사전순으로 정렬하는 경우를 미리 차단할 수 있음.
  • 전체 정렬을 한 번 한 strings에서 각 string의 n번째 index를 기준으로 다시 정렬을 해준다.
    sortedBy의 람다식을 이용해 안에 조건을 넣을 수 있다.
val answer = stringsSort.sortedBy { it[n] }
  • return 타입이 Array이기 때문에 toTypedArray()로 answer의 item 타입의 array로 변환한다.

 

2. 스파르타 코딩 클럽 강의 수강

A. 로또 번호 생성 앱 만들기(UI 구현, 2 - 1)

강의 내용 간단 정리

  • 로또 번호 생성 앱의 UI 구현
  • constraintLayout, linearLayout을 이용한 UI 구성, 커스텀 drawable xml 생성해 사용하는 방법을 공부함.

 

3. 개인 공부

A. planner 개발

공부 내용 간단 정리

  • 일정 카드 안에서 수정할 수 있도록 하는 기능 개발
  • planner 기능 구현 마무리 완료(추후에 카테고리 기능 구현 관련 블로그 작성)

 


 

간단 정리

  • 프로그래머스에서 리스트 정렬에 대해 공부해 볼 수 있었음.
  • 스파르타 코딩클럽 강의에서 BMI 생성기 때와는 다른 복잡한 UI를 만들어볼 수 있었다.
  • planner 앱 구현을 마무리해서 오류 테스트 후 출시할 예정이다.
728x90

댓글