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

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

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

 

 

1. 코드카타 문제풀이

A. 가장 가까운 같은 글자

문제 내용

 

문제 풀이 방법

  • s의 index에 해당하는 char 데이터를 기준으로 앞쪽의 char 데이터들 중 자신과 같은 글자 중 가장 가까운 데이터를 return.
  • 없는 경우에는 -1을 return.

 

해결 코드(스포 주의)

더보기
// for문으로 돌면서 char와 가장 가까운 같은 글자와의 거리를 구해야 함.
fun solution(s: String): IntArray {
    val answer = mutableListOf<Int>()

    s.forEachIndexed { index, char ->
        val compare = s.substring(0, index)
        val resultIndex = compare.indexOfLast { it == char }
        if (resultIndex != -1) {
            answer.add(index - resultIndex)
        } else answer.add(resultIndex)
    }

    return answer.toIntArray()
}

 

풀이 과정

  • char 보다 앞쪽의 string 데이터를 불러오기 위한 compare 변수 생성
    "banana"에서 첫 번째 n을 기준으로 compare = "ba"
  • compare에서 char와 값이 같은 마지막 index를 불러온다.
    "banana"에서 char값이 두 번째 a인 경우 resultIndex = 1
  • resultIndex가 -1이 아닌 경우에는(char와 같은 데이터가 존재함) 현재 index에서 resultIndex를 빼준다(같은 글자 간의 거리를 구하기 위함).
    두 번째 a의 index가 3이고 resultIndex가 1일 때, 가장 가까운 같은 글자의 거리는 2가 된다.

 

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

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

강의 내용 간단 정리

  • button에 리스너를 달아서 각각 버튼에 맞는 기능을 생성해 주었다.
  • 번호 추가할 때 추가되면 안 되는 상황들을 모두 체크해서 상황에 맞는 Toast 메시지를 띄워 주었다.
  • 고급 문법을 이용해 로또 번호를 랜덤으로 생성하는 알고리즘을 만들어 적용함.

 

3. 개인 공부

A. Planner 오류 테스트

공부 내용 간단 정리

  • planner에서 새 계정을 만들어서 오류 테스트 중.
  • 주간 일정이 정상적으로 나오지 않는 오류를 발견 후 수정.
  • category가 없을 때, 일정 정보가 불러와지지 않는 오류를 수정.
  • scroll button을 클릭했을 때, 앱이 팅기는 문제 수정

 

 


 

간단 정리

  • planner 오류 테스트 후 지인에게 2차 테스트를 맡겨 놓았다.
  • 강의 2주 차까지 완강.
728x90