전체 글 209

내가 헷갈리는 코틀린 문법 한번 더 정리

오버로딩 vs 오버라이딩 오버로딩 : 같은 이름의 메소드라도 매개변수가 다르면 사용가능오버라이딩 : 부모클래스의 메소드 재정의 추상 클래스 & 인터페이스공통점 : 대략적인 설계 명세 구현, 이를 상속하는 하위 클래스에서 구체화하지만 인터페이스는 프로퍼티의 상태를 저장할 수 없음 -> 즉 내부에서 초기화 불가능 object -> 싱글톤 패턴 만들 때 사용 or 익명 객체 클래스 만들 때 hilt에서 인터페이스를 전달할 때 @Binds를 사용하고 Class객체는 @Provides를 사용해 주입

앱개발/코틀린 2022.09.24

보일러 플레이트 코드

보일러플레이트란? 컴퓨터 프로그래밍에서 보일러플레이트 또는 보일러플레이트 코드라고 부르는 것은 최소한의 변경으로 여러곳에서 재사용되며, 반복적으로 비슷한 형태를 띄는 코드를 말한다. Kotlin 사용 Java대신 Kotlin을 사용하는 것 자체만으로 많은 보일러플레이트코드를 제거할 수 있다. 한가지 예로 Kotlin의 data 클래스는 primary 생성자를 선언하는 것만으로 equals(), hashCode(), toString(), copy() 등을 자동으로 생성한다. 라이브러리 사용 Dagger, Glide, Retrofit, Databinding 등 현존하는 인기 안드로이드 라이브러리들은 모두 어노테이션 프로세서를 사용하여 보일러플레이트 코드를 생성한다. 프로젝트에 라이브러리를 적용하는 것만으로도..

앱개발/코틀린 2022.08.26

안드로이드 면접, 신입 개발 지원 질문 리스트 정리

A기업 특징 : 인성 질문 1도 없음 많이 어려웠음 자기소개로 시작 -기술 & cs- 1. 프로세스와 쓰레드 2. 해시테이블 3. 레트로핏 혹은 관련 라이브러리 4. MVC MVP MVVM 패턴 그리고 써봤는지 5. 해시테이블 6. 디자인 패턴 7. 사전 코딩테스트 관련 질문 8. 안드로이드 액티비티 라이프 사이클 설명 9. Rest api 10. 안드로이드 내부 데이터베이스 11. fragment 관련 질문 +α - 인성 & 기타 - 1. 입사후에 무슨 일을 하고싶은지 2. 포폴질문 많음 +α B기업 특징 : 크게 어렵지 않은 편임 자기소개로 시작 인성 관련 질문이 많음 대부분 안드로이드 관련 질문임 -기술 & cs- 1. 안드로이드 context란? 2. 객체지향 프로그래밍 + 꼬리질문 3. 함수형 ..

앱개발 2022.08.07

백준 11305번 주유소 파이썬 (그리디 알고리즘)

주유소 성공서브태스크 시간 제한메모리 제한제출정답맞힌 사람정답 비율 2 초 512 MB 36641 13982 11107 37.918% 문제 어떤 나라에 N개의 도시가 있다. 이 도시들은 일직선 도로 위에 있다. 편의상 일직선을 수평 방향으로 두자. 제일 왼쪽의 도시에서 제일 오른쪽의 도시로 자동차를 이용하여 이동하려고 한다. 인접한 두 도시 사이의 도로들은 서로 길이가 다를 수 있다. 도로 길이의 단위는 km를 사용한다. 처음 출발할 때 자동차에는 기름이 없어서 주유소에서 기름을 넣고 출발하여야 한다. 기름통의 크기는 무제한이어서 얼마든지 많은 기름을 넣을 수 있다. 도로를 이용하여 이동할 때 1km마다 1리터의 기름을 사용한다. 각 도시에는 단 하나의 주유소가 있으며, 도시 마다 주유소의 리터당 가격은..

백준 9012번 괄호 파이썬

괄호 성공다국어 한국어 시간 제한메모리 제한제출정답맞힌 사람정답 비율 1 초 128 MB 128160 58480 42309 44.527% 문제 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 부른다. 한 쌍의 괄호 기호로 된 “( )” 문자열은 기본 VPS 이라고 부른다. 만일 x 가 VPS 라면 이것을 하나의 괄호에 넣은 새로운 문자열 “(x)”도 VPS 가 된다. 그리고 두 VPS x 와 y를 접합(concatenation)시킨 새로운 문자열 xy도 VPS 가 된다. 예를 들어 “(())()”와 “((()))” 는 VPS..

백준 11399번 ATM 그리디

ATM 성공 시간 제한메모리 제한제출정답맞힌 사람정답 비율 1 초 256 MB 69651 46321 37636 66.988% 문제 인하은행에는 ATM이 1대밖에 없다. 지금 이 ATM앞에 N명의 사람들이 줄을 서있다. 사람은 1번부터 N번까지 번호가 매겨져 있으며, i번 사람이 돈을 인출하는데 걸리는 시간은 Pi분이다. 사람들이 줄을 서는 순서에 따라서, 돈을 인출하는데 필요한 시간의 합이 달라지게 된다. 예를 들어, 총 5명이 있고, P1 = 3, P2 = 1, P3 = 4, P4 = 3, P5 = 2 인 경우를 생각해보자. [1, 2, 3, 4, 5] 순서로 줄을 선다면, 1번 사람은 3분만에 돈을 뽑을 수 있다. 2번 사람은 1번 사람이 돈을 뽑을 때 까지 기다려야 하기 때문에, 3+1 = 4분이 ..

프로그래머스 게임맵최단거리 파이썬

게임 맵 최단거리 문제 설명 ROR 게임은 두 팀으로 나누어서 진행하며, 상대 팀 진영을 먼저 파괴하면 이기는 게임입니다. 따라서, 각 팀은 상대 팀 진영에 최대한 빨리 도착하는 것이 유리합니다. 지금부터 당신은 한 팀의 팀원이 되어 게임을 진행하려고 합니다. 다음은 5 x 5 크기의 맵에, 당신의 캐릭터가 (행: 1, 열: 1) 위치에 있고, 상대 팀 진영은 (행: 5, 열: 5) 위치에 있는 경우의 예시입니다. 위 그림에서 검은색 부분은 벽으로 막혀있어 갈 수 없는 길이며, 흰색 부분은 갈 수 있는 길입니다. 캐릭터가 움직일 때는 동, 서, 남, 북 방향으로 한 칸씩 이동하며, 게임 맵을 벗어난 길은 갈 수 없습니다. 아래 예시는 캐릭터가 상대 팀 진영으로 가는 두 가지 방법을 나타내고 있습니다. 첫..

프로그래머스 타겟넘버 파이썬

타겟 넘버 문제 설명 n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+1 = 3 +1+1-1+1+1 = 3 +1+1+1-1+1 = 3 +1+1+1+1-1 = 3 사용할 수 있는 숫자가 담긴 배열 numbers, 타겟 넘버 target이 매개변수로 주어질 때 숫자를 적절히 더하고 빼서 타겟 넘버를 만드는 방법의 수를 return 하도록 solution 함수를 작성해주세요. 제한사항 주어지는 숫자의 개수는 2개 이상 20개 이하입니다. 각 숫자는 1 이상 50 이하인 자연수입니다. 타겟 넘버는 1 ..