전체 글239 [프로그래머스 *Java] - 타겟 넘버 https://school.programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 조건 제한시간 : 45분 이내 이번 문제는 로직정리를 위해 세 가지 정도 정리하고 구현하면 좋을 거 같다. 1. dfs 구현을 할줄 아는가? (재귀적) 2. dfs 구현 중에, 매개변수에서 해당 값을 변환시켜 계속 다음 dfs 호출하는 구현을 해본 적이 있는가? 3. dfs 구현부에서 두 개의 dfs 메서드를 호출해 본 dfs를 만들어본 적이 있는가? 아마 일반적으로 알고리즘 문제를 접한 분은 d.. 2022. 7. 28. [프로그래머스 *Java] 영어 끝말잇기 https://school.programmers.co.kr/learn/courses/30/lessons/12981 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 조건 제한시간 : 30분 이내 로직을 구현할 때, 고려해야 할 부분을 숫자를 매겨 정리하면 4가지로 정리할 수 있다. 1. 단어가 중복될 때 어떻게 처리해야할까? 2. 끝말잇기가 아닌, 다른 단어를 말할 경우? 3. 틀린 사람이 몇 번째 차례 때 틀린 것인지? 4. 틀린 사람이 누구인지? 위 네 가지만 고려하면 쉽게 문제를 풀 수 있다. 아래 코드를 보면, HashSet 보면 단어를 담아주기 위한.. 2022. 7. 28. [안드로이드] - Fragment에서 ViewBinding 사용 (_binding 언더바 사용하는 이유) Fragment (프래그먼트) 프래그먼트는 FragmentActivity 내의 어떤 동작 또는 사용자 인터페이스의 일부를 나타낸다. 또한, 프래그먼트는 액티비티의 모듈식 섹션이라고 생각하면 된다. 이는 자체적인 수명 주기를 가지고, 자체 입력 이벤트를 수신하고, 액티비티 실행 중에 추가 및 삭제가 가능하다. 프래그먼트는 항상 액티비티 내에서 호스팅되어야 하며, 해당 프래그먼트의 수명 주기는 호스트 액티비티의 수명 주기에 직접적으로 영향을 받는다. ex. 액티비티가 일시정지되는 경우, 그 안의 모든 프래그먼트도 일시정지되며 액티비티가 소멸되면 모든 프래그먼트도 모두 소멸. 프래그먼트는 액티비티와 다르게 조금은 다른 생명주기를 가지고 있다. 프래그먼트의 고유한 생명 주기를 가지고 있으면서, View 와 관련.. 2022. 7. 26. [안드로이드] - Data Layer (데이터 레이어) 데이터 레이어 데이터 영역은 0~ 여러개의 데이터 소스를 각각 포함할 수 있는 저장소로 구성된다. 앱에서 처리하는 다양한 유형의 데이터 별로 저장소 클래스(Respository Class)를 만들어야한다. 저장소 클래스(Repository Class) 작업 앱의 나머지 부분에 데이터 노출 데이터 변경사항을 한 곳에 집중 여러 데이터 소스 간의 충돌 해결 앱의 나머지 부분에서 데이터 소스 추상화 비즈니스 로직 포함 각 데이터 소스 파일 네트워크 소스 로컬 데이터베이스 와 같은 하나의 데이터 소스만 사용해야 한다. 데이터 소스 클래스는 데이터 작업을 위해 애플리케이션과 시스템 간의 가교 역할을 한다. 계층 구조의 다른 레이어(UI Layer, Domain Layer)는 데이터 소스에 직접 접근해서는 안된다... 2022. 7. 26. [안드로이드] - 도메인 레이어 (Use Case) 도메인 레이어 도메인 레이어는 UI 레이어와 데이터 레이어 사이에 있는 선택적 레이어다. 또한, 도메인 레이어는 복잡한 로직이나 여러 ViewModel에서 재사용되는 간단한 비즈니스 로직의 캡슐화를 담당한다. 따라서, 복잡성을 처리하거나, 재사용성을 선호하는 등 필요한 경우에만 사용해야 한다. 도메인 레이어 이점 코드 중복을 방지한다. 도메인 레이어 클래스를 사용하는 클래스의 가독성을 개선한다. 앱의 테스트 가능성을 높인다. 책임을 분할하여 대형 클래스를 피할 수 있다. 그리고 도메인 레이어 클래스를 간단하고 가볍게 유지하려면, 각 사용 사례(Use Case)에서는 기능 하나만 담당해야 하고 변경 가능한 데이터를 포함해서는 안된다. 대신, 데이터 레이어에서 변경 가능한 데이터를 처리한다. 가이드 이름 지.. 2022. 7. 25. [Kotlin IN ACTION] - Kotlin 클래스 선언(주 생성자, 프로퍼티) 클래스 초기화 아래의 코드를 보고 설명하겠다. class User(val nickname : String) 보통 클래스의 모든 선언은 중괄화 '{ }' 사이에 들어간다. 하지만, 이 클래스 선언에는 중괄호가 없고 괄호 사이에 val 선언만 존재한다. 그 이유는 무엇일까? 이렇게 클래스 이름 뒤에 오는 괄호로 둘러 싸인 코드를 주 생성자 (primary constructor)라고 부른다. 주 생성자는 두 가지 목적에 쓰인다. 생성자 파라미터를 지정한다 그 생성자 파라미터에 의해 초기화되는 프로퍼티를 정의한다. 위 코드처럼 간단한 클래스 선언이 아닌, 같은 목적을 달성할 수 있는 가장 명시적인 선언으로 푼 코드를 확인해보자. class User constructor(_nickname : String) { /.. 2022. 7. 25. 이전 1 ··· 13 14 15 16 17 18 19 ··· 40 다음