목록전체 글 (16)
게으른 개발자
객체를 복사할 때 얕은 복사(shallow copy)와 깊은 복사(deep copy)가 있다는 것을 알고 계신가요? 개발을 하다 보면 리스트나 객체를 복사해서 사용해야 하는 경우가 생기는데 이때 우리가 늘 사용하는 대입 연산자(=)를 사용하면 얕은 복사가 되어 값을 변경하면 원본 객체와 복사본 객체의 값이 모두 변경됩니다. kotlin에서는 clone(), copy()를 사용하여 깊은 복사를 할 수 있습니다. 얕은 복사와 깊은 복사 개념 1) 얕은 복사 class Student(id : Int, name : String, score : MutableList) : Cloneable{ var id : Int var name : String var score : MutableList init{ this.id ..
안녕하세요:) 이번 글에서는 안드로이드 프로젝트를 생성했는데, 생성하자 마자 모든 폴더가 빨간색으로 뜰 때 해결방법을 알려드리려고 해요! 바탕화면이나 다른 폴더에 프로젝트를 생성하면 문제가 없는데, git이 연동되어있는 폴더에 프로젝트를 생성하면 모든 파일이 빨간색으로 뜨는데, 디버깅을 해봐도 오류는 안 뜨고 정말 막막했습니다.... 결론부터 말하자면, 버전 관리 때문입니다ㅠㅠ git을 생성한 폴더에 프로젝트를 생성하면 안드로이드 스튜디오에서도 버전 컨트롤러를 자동으로 생성해버려서 충돌이 생기는 게 아닌가 합니다... 해결방법 1. Intelij(또는 AndroidStudio)에서 preferences클릭 2. 왼쪽 아래 VersionControl 클릭 3. Directory에 떠있는 리스트를 클릭해서 ..
저번 글에서 안드로이드의 4가지 컴포넌트에 대해 간단하게 소개했다. 이번 글에서는 4가지 컴포넌트 중에서 가장 많이 사용하는 액티비티(Activity) 컴포넌트와, 생명주기에 대해 알아보자. 액티비티 안드로이드에서 액티비티 컴포넌트는 이름과 같이 사용자가 어떠한 활동 할 때 실행되는 컴포넌트이다. UI를 제공하여 사용자와 상호작용을 하며, class에서 activity를 상속받아 사용할 수 있다. 보통 앱은 여러 화면으로 구성되어 있어 여러 액티비티로 구성되어있다고 할 수 있다. 예를 들어 앱을 시작할 때 나오는 로그인 화면, 로그인을 했을 때 이동하는 메인화면 등 모두 각각의 액티비티들이다. 액티비티를 생성하면 .kotlin(또는 .java) 클래스 파일과 .xml파일이 함께 생성된다. .xml파일은 ..
이분 탐색(Binary search) 이분 탐색을 사용할 때는 반드시 오름차순으로 정렬이 되어있어야 합니다! 이분 탐색은 이름처럼 주어진 범위를 반으로 나눠가면서 탐색하는 방법이다. 1~n까지 수 또는 리스트에서 특정 수 a를 찾는다고 하면 우리는 1~n까지 모두 탐색하여 x가 있는지 찾는 방법이 있다. 이 방법은 시간 복잡도 O(n)으로 n이 커질수록 x값을 찾는데 시간이 오래 걸린다. 이때 시간 복잡도를 O(logn)으로 줄여 탐색할 수 있는 방법이 바로 이분 탐색이다. 알고리즘 1. 탐색하고자 하는 값의 범위 또는 리스트에 중복되는 값이 없는 경우 index 0 1 2 3 4 5 6 7 8 value 0 1 2 3 4 5 6 7 8 이분 탐색은 left, right로 mid값을 구하고, mid값을 ..
문제 https://www.acmicpc.net/problem/2616 2616번: 소형기관차 첫째 줄에 기관차가 끌고 가던 객차의 수가 입력된다. 그 수는 50,000 이하이다. 둘째 줄에는 기관차가 끌고 가던 객차에 타고 있는 손님의 수가 1번 객차부터 차례로 입력된다. 한 객차에 타고 있 www.acmicpc.net 문제 요약 기차는 한대의 기관차와 여러 대의 객차로 구성되어있다. 만약 운행 중 기관차가 고장 난 다면 다른 기관차가 와서 객차를 끌고 목적지까지 운행해야 한다. 철도청에서는 기관차가 고장 날것을 대비해 k개의 객차만 끌 수 있는 소형 기관차 3대를 배치했다. 총 n개의 객차가 있을 때 3대의 소형 기관차가 가장 많은 인원을 데리고 목적지까지 도착할 수 있는 방법을 찾아야 한다. k개의..