20230731 Android

기메단·2023년 7월 31일
0

TIL

목록 보기
11/44
모바일 운영체제  

- 시스템 하드웨어를 관리할 뿐 아니라 응용 소프트웨어를 실행하기 위하여
  하드웨어 추상화 플랫폼과 공통 시스템 서비스를 제공하는 시스템 소프트웨어이다. 
  
  사용자 <-> 응용 프로그램 <-> 운영 체제 <-> 하드웨어 

안드로이드 OS의 주요 특징
- 오픈 소스
- Java and Kotlin 개발 언어
- 완벽한 컴포넌트 제공
- 쉬운 앱 간 연동
- 다양한 기능 지원

안드로이드 모바일 플랫폼 ( 모바일 운영체제 + 애플리케이션 프레임워크) 
모바일 운영 체제 - 모바일 앱 실행을 쉽게 해줌
애플리케이션 - 모바일 앱 개발을 쉽게 해줌


Manifest.xml -> 앱의 기본 특징을 설명하고, 앱의 구성요소인 컴포넌트(액티비티, 서비스 등)을 정의한 XML 파일.


res -> 애플리케이션 리소스(이미지 혹은 문자열)를 코틀린 코드에서 분리하여 독립적으로 유지/관리 할 수 있도록 함으로써, 다양한 환경 변화(화면크기 변화, 사용 언어 변경 등)를 코드의 변경 없이 수용할 수 있음.

drawable -  이미지 리소스
layout - UI구성에 필요한 XML 리소스
mipmap - 앱 아이콘 이미지
values - 문자열 등의 값으로 이용되는 리소스 

* res 하위의 폴더 명은 지정된 폴더명 사용. 
* 각 리소스 폴더에 다시 하위 폴더를 정의할 수 없다. 
* 리소스 파일 명에는 알파벳 대문자를 이용할 수 없다. 

알고리즘

class Solution {
    fun solution(numbers: IntArray): Int {
        val rsp = numbers.sorted()
        val a = rsp.last() 
        val b = rsp[rsp.size - 2]
        
        return a * b
    }
}

넘버 원소 중 두 개를 곱해서 최댓값을 return 해주도록 만들어야 하는 문제.

.reversed() // 순서 반대로 
.sorted() // 오름차순 정렬
.sortedDescending() // 내림차순 정렬
.shhuffled() // 랜덤 정렬 

여기서 내림차순 정렬로 a = rsp.first() 젤 큰 수, 두번 째 값이 두번째로 큰 값이니, 그 다음 수를 지정하고 싶었는데 어떠한 수를 넣어도 되질 않아서 결국은 오름차순 정렬로 해결했다...

2개의 댓글

comment-user-thumbnail
2023년 8월 1일

다양한 정의들이 간단하지만 이해하기 쉽게 정리되어 있어 다시 복습까지 했네용 :)

답글 달기
comment-user-thumbnail
2023년 8월 1일

저는 C로 알고리즘 하고있는데 생각하는 로직은 다 비슷한것 같네요! 잘 보고갑니당

답글 달기