오늘 풀어본 알고리즘 문제

문제

저번에 풀어봤던 문제가 배열뒤집기 여서 reversed 함수를 써서 해결해봤다.

class Solution {
    fun solution(my_string: String) = my_string.reversed().toString()
    
}

toIntArray()였던것만 toString()으로 바꿔서 테스트해봤더니 바로 해결이 됐다.

 

앱개발 입문반 강의를 복습하고, 선택과제를 해보았다.

 

선택과제

이 선택과제를 해보려고 힌트로 주어진 registerForActivityResult에 대해 먼저 공부하기 시작했다.

 기존에는 startActivityForResult()를 통해 콜백을 등록하고, onActivityResult()에서 콜백을 처리

했다고 한다. 그러나 이 방식을 사용했을때, 메모리 부족으로 작업이 소멸할 수 있어서 registerForActivityResult 를 사용하기 시작했다고 한다

 

이 코드를 사용하기 위해선,

  1. A 액티비티에서 먼저 registerForActivityResult() API를 정의한다.
  2. ActivityResult를 받기 위해 파라미터로 전달하는 ActivityResultCallback  StartActivityForResult 함수를 사용하여 기존 onActivityResult(int, int, Intent) 와 동일한 결과를 처리한다.
    • result 객체를 인자로 받아와 'resultCode'와 'data'에 접근 가능
    • resultCode를 이용해 'RESULT_OK' 인지 확인
    • result.data를 이용해 다른 액티비티에서 보내온 Intent Data를 이용 가능
  3. ActivityResultLauncher을 통해 시작시킨다. 즉, Intent 전달로 새로운 Activity를 호출한다.
  4. B 액티비티에서 데이터를 실어 A 액티비티로 보내주기 위해, setResult() 함수에 resultCode Intent 데이터를 넣어준다.

이 과정을 거쳐 사용한다고 한다. 

 

오늘 하루동안 여러가지 시도해보았는데, 잘 풀리지 않는다..

 

아직 intent가 낯설기도 하고, 개념 이해가 어려워 잘 풀리지 않다. 너무 막혀서 일단은

비교적 할만하다 생각한 5장 사진 랜덤으로 표시하는 것을 먼저해봤다.

 

우선, 이미지 리소스를 담은 배열을 하나 만들고, Random.nextInt()를 써서 0부터 배열 크기까지 랜덤한 인덱스를 선택하고

그 인덱스로 이미지를 설정하게 했다.

 val imageArray = arrayOf(
            R.drawable.soccer1,
            R.drawable.soccer2,
            R.drawable.soccer3,
            R.drawable.soccer4,
            R.drawable.soccer5
        )

        val randomIndex = Random.nextInt(imageArray.size)
        image.setImageResource(imageArray[randomIndex])

이미지를 배열에 담고, 인덱스를 연결해서 표시할 수 있다는걸 알 수 있었다.

 

월요일이라그런지 집중하기 조금 힘든 날이었다.

 

내일은 알고리즘 문제 풀고 화면이동 +@ 과제를 꼭 끝마쳐야겠다. 

 

'TIL (Today I Learned) > TIL' 카테고리의 다른 글

2023. 08. 09 TIL  (0) 2023.08.09
2023. 08. 08 TIL  (0) 2023.08.08
2023. 08. 04 TIL  (0) 2023.08.04
2023. 08. 03 TIL  (0) 2023.08.03
2023. 08. 02 TIL  (2) 2023.08.02

+ Recent posts