전체 글 52

[Python] 백준 1780 "종이의 개수_분할정복" 문제풀이

💡문제 풀이 import sys input = sys.stdin.readline n = int(input()) papers = [list(map(int,input().split())) for _ in range(n)] a=0 b=0 c=0 def asdf(x,y,n): global a,b,c sameNum = papers[x][y] for i in range(x,x+n): for j in range(y,y+n): if sameNum != papers[i][j]: asdf(x,y,n//3) asdf(x+n//3,y,n//3) asdf(x+2*n//3,y,n//3) asdf(x,y+n//3,n//3) asdf(x+n//3,y+n//3,n//3) asdf(x+2*n//3,y+n//3,n//3) asdf(x,y..

[개발상식] 안드로이드 기술면접 준비 - 2

Q1. 왜 액티비티 클래스의 onCreate() 메소드 안에서 setContentView()를 사용하는가? - 액티비티의 oncreate 메소드는 액티비티 불릴 때 한번만 호출이 되기 때문에 초기화에 자주 사용된다. onResume, onStart 같이 여러번 호출 될 수 있는 곳에서 호출하는 것은 매우 비효율적인 코드이다. Q2. 액티비티 클래스의 onSavedInstanceState(), onRestoreInstanceSate() 역할은? - onSaveInstanceState() : 액티비티가 pause 되기 전에 데이터를 저장하는데 사용한다. - onRestoreInstanceState() : 액티비티가 파괴되고, 다시 재 생성될 때 액티비티가 가지고 있는 번들로부터 데이터를 회복할 수 있다. Q..

OS 2022.11.07

[개발상식] 안드로이드 기술면접 준비 - 1

Q1. 안드로이드 애플리케이션 클래스는 무엇인가? - 안드로이드의 application class는 액티비티 및 서비스와 같은 다른 모든 구성요소에 접근 가능한 기본 클래스입니다. 또한 애플리케이션 프로세스가 생성될 때 가장 먼저 초기화 됩니다. 그렇기 때문에 보통 앱 전역에서 일관성있게 사용하는 요소들을 등록하여 사용합니다. Q2. context 무엇인가? - context 는 리소스에 접근하거나, 데이터베이스나 프리퍼런스에 접근하는 등 기타 등등 역할을 제공합니다. 앞으로 비교할 다른 context와 다른 중요한 점은 애플리케이션에서 현재 실행되고 있는 환경을 가지고 있는 차이가 있습니다. Q3. ARM64-v8a, ARMv7, ABI 가 무엇인가? - 안드로이드 디바이스는 다양한 cpu를 사용하여 ..

OS 2022.11.06

[안드로이드] Hilt @Qualifier란 ?

💡 Hilt로 Retrofit 모듈을 작성할 때 여러개의 URL을 처리해야 하는 경우에 Hilt가 어떤 메서드의 Retrofit 객체를 사용해야하는지 모른다. 이를 해결하기 위해 @Qualifier를 사용하여 annotation클래스를 사용한다. ex) 만약 car를 요청할 때 hilt는 두 바인드 메서드에서 어느 종류의 car를 리턴해야 하는지 모른다. 이를 보완하기 위해 @Qualifier를 사용. enum class OilType{ GASOLINE,DIESEL,LPG } interface Car{ fun getOilType():OilType ... } @InstallIn(ActivityComponent::class) @Module abstract class CarModule{ @Binds fun b..

안드로이드 2022.10.31

[개발상식] IT 기술면접 준비 - 4 (데이터 베이스)

Q1. 데이터베이스를 사용하는 이유? - 데이터베이스가 등장하기 전까지는 데이터를 각각의 파일 단위로 저장하는 파일처리 시스템 방식이었습니다. 데이터베이스를 이용하면 데이터의 변경 시 응용 프로그램에 영향을 미치지 않는 독립성과 데이터의 중복 문제와 보안 문제를 해결할 수 있습니다. Q2. 인덱스란? - 데이터베이스에서 특정 컬럼값을 가지고 있는 열 혹은 값을 찾기 위해서 사용하는 방법입니다. 이를 위해 컬럼의 값과 해당 레코드의 주소를 키와 값의 쌍으로 인덱스를 만들어 둡니다. DBMS의 인덱스는 항상 정렬된 상태를 유지하기 때문에 원하는 값을 찾는 속도가 빠릅니다. Q3. B-트리 인덱스 알고리즘과 해시 인덱스 알고리즘 비교? - 둘 다 DBMS가 인덱스를 관리하는 방법에 대한 알고리즘입니다. B-트..

OS 2022.10.25

[개발상식] IT 기술면접 준비 - 3 (컴퓨터 구조)

Q1. 컴퓨터의 3대 구성요소란? - 연산을 담당하는 cpu, 기억을 담당하는 메모리, 다양한 입출력 장치 3가지 입니다. Q2. CPU의 구조는 어떻게 되어 있나요? - cpu의 주요 구성요소는 메모리에서 명령을 받아 해독과 실행을 지시하는 제어장치, 제어장치의 지시에 따라 산술, 논리, 비트 연산 등을 수행하는 연산장치, 제어, 연산 등에 사용하는 임시 기억 장치인 기억장치 3가지가 있습니다. Q3. 병럴처리의 파이프라인 기법 vs 슈퍼스칼라 기법? - cpu의 성능을 향상하기 위해서는 cpu의 클록을 높이거나 캐시의 크기를 늘려야하지만 현재 기술의 한계를 맞아 코어를 여러 개 만들거나, 동시에 실행 가능한 명령의 개수를 늘리는 방법을 사용합니다. 이때 병렬처리는 동시에 여러 개의 명령을 처리하여 작..

OS 2022.10.24

[개발상식] IT 기술면접 준비 - 3(운영체제)

Q1. 캐시를 사용하는 이유와 캐시 적중률을 높이기 위한 방법 ? - 캐시는 메모리와 cpu간의 속도 차이를 완화하기 위해 메모리의 데이터를 미리 가져와서 저장해두는 임시 장소입니다. 캐시는 필요한 데이터를 모아 한꺼번에 전달하는 버퍼의 일종으로 cpu가 앞으로 사용할 것으로 예상되는 데이터를 미리 가져다 놓습니다. 이러한 캐시의 적중률을 높이기 위한 방법으로 캐시의 크기를 늘리는 방법이 있지만 이는 가격이 비싸다는 한계가 있습니다. 다른 방법으로는 앞으로 사용될 데이터를 가져오는데 지역성 이론에 따르면 현재 위치에 가까운 데이터가 멀리 있는 데이터보다 사용될 확률이 더 높다는 것이 있습니다. Q2. 프로세스와 스레드의 차이 ? - 프로세스란 프로그램을 실행했을 때 디스크에서 메모리에 올라와 cpu자원의..

OS 2022.10.23

[개발상식] IT 기술면접 준비 - 2 (컴퓨터 네트워크)

Q1. HTTP의 GET vs POST ? - get과 post 모두 http 프로토콜을 이용하여 서버에 무엇을 요청할 때 사용하는 방식입니다. 1) GET: 요청하는 데이터가 HTTP request message 의 header 부분의 url에 담겨서 전송되기 때문에 데이터의 크기가 제한적이며 오청하는 뎅터가 url에 고스란히 보이므로 보안이 중요시되는 요청은 자제하는 것이 좋습니다. 2) POST: 요청하는 데이터가 HTTP request message 의 body 부분에 담겨서 전송되는 방식이기 때문에 데이터의 크기가 get보다 크지만 보안 면에서 좋습니다. Q2 . OSI 7 계층은 무엇이고 존재 이유? - OSI 7 계층은 통신 접속에서 완료까지의 과정을 7단계로 정의한 국제 통신 표준 규약입니..

OS 2022.10.22