일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- dart
- dfs
- Lazy
- Kotlin
- 코틀린
- flutter
- 싱글톤
- 앱아이콘 변경
- Java
- 자료구조
- 비동기 처리
- IOS
- Android
- 거리알고리즘
- 프로그래머스
- Widget Tree
- Render object tree
- zwj
- 에러
- Singleton
- 플러터
- 자바
- 플러터 동작
- 완전탐색
- 재귀
- linebreak
- 프리즈드
- 알고리즘
- 초기화
- element tree
- Today
- Total
목록분류 전체보기 (80)
모바일 개발하는 자바리안의 메모장
https://programmers.co.kr/learn/courses/30/lessons/64065 코딩테스트 연습 - 튜플 "{{2},{2,1},{2,1,3},{2,1,3,4}}" [2, 1, 3, 4] "{{1,2,3},{2,1},{1,2,4,3},{2}}" [2, 1, 3, 4] "{{4,2,3},{3},{2,3,4,1},{2,3}}" [3, 2, 4, 1] programmers.co.kr 2레벨 치고는 어렵지 않았던 문제, 늘 그랬듯이 문제를 이해하는데에 조금 어려움이 있었으나, 풀이 과정을 보면서 쉽게 요하는 부분을 파악할 수 있었다. 코드는 크게 2스탭으로 나뉘는데, 1. 투플 원소를 만들어 2차원 배열에 담아준다. 2. 투플 원소를 담은 2차원 배열과 HashSet을 활용하여 중복되지 않은..
https://programmers.co.kr/learn/courses/30/lessons/60058 코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 "콘"은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 programmers.co.kr 오랜만에 올바른 접근으로 깔끔하게 풀어낸 문제였다. 조금 잘못 이해한 부분이 있어서 디버깅 중에 어려움이 있었지만 어렵지 않게 고칠 수 있었다. dfs로 앞에서부터 한글자씩 붙여나가며 u가 "균형잡힌 괄호 문자열"인지 "올바른 괄호 문자열"인지 확인하고, 문제에 기재된 알고리즘을 적용한 뒤, base가 되는 string을 초기화, 동일한 스탭을 반복하여 정답을 찾..
https://programmers.co.kr/learn/courses/30/lessons/72411 코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr 단순한 String관련 문제인 줄 알았으나,, 각 course 길이의 음식 조합을 카운트 하는 게 핵심인 문제였다. dfs 기반의 combination 함수를 이용하여 가능한 모든 조합을 구할 수 있었다. 각 코스와 조합된 메뉴의 개수가 동일할 경우 Map에 넣어주며, 중복되는 메뉴들은 value로 카운트 해준 뒤에 value 기준으로 정렬. 정렬된 맵에서 가장 ..
https://programmers.co.kr/learn/courses/30/lessons/1835 코딩테스트 연습 - 단체사진 찍기 단체사진 찍기 가을을 맞아 카카오프렌즈는 단체로 소풍을 떠났다. 즐거운 시간을 보내고 마지막에 단체사진을 찍기 위해 카메라 앞에 일렬로 나란히 섰다. 그런데 각자가 원하는 배치가 모두 programmers.co.kr 문제 이해하는데에 조금 어려움이 있었던 문제... 처음에는 String 정렬 쪽을 생각하며 한참을 고민하다가 존경하는 고수님의 풀이를 참고하여 문제를 풀 수 있었다. 정답은 DFS에 있었다. 각 프랜즈의 배치 + 검증 매소드를 통해 몇개 조합이 조건에 만족하는지 어렵지 않게 구할 수 있었다. DFS 함수 안의 for문을 통해 각 프랜즈의 조합을 String으로..
https://programmers.co.kr/learn/courses/30/lessons/12899 코딩테스트 연습 - 124 나라의 숫자 programmers.co.kr 처음 문제를 접했을때는 n진수 계산 방법으로 접근하면 되겠구나라고 생각했지만 쉽지가 않았다... 밤을 샐 것 같아, 고수님들의 솔루션을 통해 공통되지 않는 숫자 중 3을 나눴을 때의 값과 나머지를 이용하는 방법을 접하게 되었고, 추가로 나머지가 0일 경우 몫에서 1을 빼주며 계산을 반복하니 쉽계 답을 원하는 답을 얻을 수 있었다. 124나라에서의 두자리 숫자 24, 10진수로는 9의 풀이과정을 예로 보자. 1. 첫 셈에서 9을 3으로 나누면 몫이 3, 나머지가 0 > 나머지가 0이니 몫에서 1을 뺀 2를 다음 셈으로 가져간다. 2. ..
https://programmers.co.kr/learn/courses/30/lessons/12973 코딩테스트 연습 - 짝지어 제거하기 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙 programmers.co.kr 오랜만에 다시 알고리즘 공부를 하니 감이 많이 죽었다. 스택으로 간단하게 풀 수 있는 문제였는데, 뭔가에 홀린듯 while 안에서 for loop을 돌리다가 효율성에서 좌절,, Stack에 하나씩 넣으며 pair가 되는 타이밍에 pop을 해주며 마지막에 아무것도 남아있지 않으면 모두 제거되었음을 쉽게 알 수 있는 문제였다.. import java.u..
Drawer를 child로 갖고있는 Container의 모퉁이를 둥글게 바꾸는 게 아주 간단할 줄 알았으나, Decoration으로 어떤 위젯을 감싸도 모퉁이가 둥글게되지 않아 찾아본 결과,,, Decoration은 child 위젯의 뒤에 그려진다는 것을 알게되었다. 결국 Container에 borderRadius가 잘 반영이 되었다 해도 child 뒤에 그려져 보이지 않았던 것이다.. 이에 대한 해결책은 바로 ClipRRect이다. 공식 문서에서의 해당 위젯에 대한 설명은 다음과 같다 : A widget that clips its child using a rounded rectangle. [Link] 해당 위젯으로 감싸면 끝이 둥근 형태의 컨테이너가 틀이되고 자식 위젯이 그 틀 안에서 출력되는 것이다...
Flutter 프로젝트 생성 시, 프로젝트가 아래와 같은 폴더, 파일로 구성된 걸 볼 수 있다 : 우선 프로젝트를 구성하는 폴더와 역할은 아래와 같다 : - .dart_tool : Dart2부터 추가되었으며 pub과 다른 다른 tool에서 사용 - .idea : 개발 도구 관련 설정 - android : 안드로이드 네이티브 코드 작성 - build : 빌드 시 요구되는 파일 - ios : iOS 네이티브 코드 작성 - lib : Dart 네이티브 코드 작성 - test : 테스트 코드 작성 그리고, 파일들과 역할은 다음과 같다 : - .gitignore : 모두가 한번씩은 사용해봤을 git 버전 관리 시 무시할 파일을 관리하는 파일 - .metadata : 프로젝트의 property를 version정보로..
스프레드 연산자는 컬렉션 내 데이터들 나열된 상태를 명시해주는 연산자로, 컬렉션에 다른 컬렉션 데이터를 삽입할 때 사용됩니다.. 아래 예제 코드를 보면 : List dynamicList = [1, 2, "삼", 4]; List finalDynamicList = [0, ..dynamicList, 5]; // Print : "0, 1, 2, "삼", 4, 5" List finalIntList = [0, ..dynamicList, 5]; // Error 아아주 간단하다. 앞서 설명한 바와 같이, dynamicList 앞에 ... 연산자를 명시하여 0과 5 사이에 해당 컬렉션의 데이터를 삽입하겠다는 의미이다. 하지만 type은 신경써줘야 한다, dynamicList와 동일한 데이터 타입으로 선언된 finalDy..
함수 정의 시 매개변수 선언 시, 매개 변수를 선택형으로 설정해줄 수 있다. 이를 선택 매개변수라 부르며, 선택 매개변수를 넘겨줄 때에는 앞에 매개변수명을 명시해야하기 때문에, 이름 있는 매개변수(Named Parameter)라고 불리기도 한다. 선택형 매개변수는 간단하게 curly bracket({})으로 감싸주어 선언할 수 있다. 다음 예제 코드를 보자 : void testFunc(String required, {int named}) { // Codes } void main() { testFunc("String", named:0); testFunc("String"); testFunc(named:0); // Error } testFunc의 매개 변수 2개가 선언되었고, 그 중 named라는 int 타입..