일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 알고리즘
- 거리알고리즘
- flutter
- element tree
- Java
- Render object tree
- 초기화
- Android
- dfs
- IOS
- 플러터
- 싱글톤
- 에러
- 재귀
- 프로그래머스
- 완전탐색
- 앱아이콘 변경
- 코틀린
- dart
- Widget Tree
- zwj
- Lazy
- 자료구조
- Kotlin
- 프리즈드
- linebreak
- 플러터 동작
- 자바
- 비동기 처리
- Singleton
- Today
- Total
목록프로그래머스 (15)
모바일 개발하는 자바리안의 메모장
https://programmers.co.kr/learn/courses/30/lessons/42883# 코딩테스트 연습 - 큰 수 만들기 programmers.co.kr 와 이건 dfs로 모든 조합 구해서 풀면 되겠다! 하고 풀었다가 좌절한 문제.. 고수님들의 설명을 참고하여 그리디 알고리즘을 사용하여 더 간결하고 직관적인 코드로 답을 찾을 수 있었다.. number의 첫번째 숫자부터 순서대로 Stack에 넣어준 뒤, 다음 인덱스의 숫자를 확인 할 때, 그 숫자가 마지막에 넣은 숫자보다 큰지 확인 후 바꿔주며 삭제된 숫자의 개수를 카운트해준다. 이렇게 카운트된 값은 삭제할 숫자 개수, k보다 작은지 비교해주기 위해 사용한다. 상기 그리디한 작업을 반복하며, number의 길이 - k 길이를 유지해주며 s..
https://programmers.co.kr/learn/courses/30/lessons/81302 코딩테스트 연습 - 거리두기 확인하기 [["POOOP", "OXXOX", "OPXPX", "OOXOX", "POXXP"], ["POOPX", "OXPXP", "PXXXO", "OXXXO", "OOOPP"], ["PXOPX", "OXOXP", "OXPOX", "OXXOP", "PXPOX"], ["OOOXX", "XOOOX", "OOOXX", "OXOOX", "OOOOO"], ["PXPXP", "XPXPX", "PXPXP", "XPXPX", "PXPXP"]] [1, 0, 1, 1, 1] programmers.co.kr 다 됐다 싶었으니, 몇몇 실패 케이스 때문에 시간이조금 소요됐다. (디버깅이 상당히 어려웠..
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/72411 코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr 단순한 String관련 문제인 줄 알았으나,, 각 course 길이의 음식 조합을 카운트 하는 게 핵심인 문제였다. dfs 기반의 combination 함수를 이용하여 가능한 모든 조합을 구할 수 있었다. 각 코스와 조합된 메뉴의 개수가 동일할 경우 Map에 넣어주며, 중복되는 메뉴들은 value로 카운트 해준 뒤에 value 기준으로 정렬. 정렬된 맵에서 가장 ..
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..
https://programmers.co.kr/learn/courses/30/lessons/60057 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr 카카오 코테를 준비하며 접한 문제,, 너무 긴장해서 그런가 문제가 잘 파악이 안되서 정확히 이해하기까지 시간이 많이 소요됐다.. 어떤 알고리즘으로 어떻게 효율적으로 쪼갤지 고민을 참 많이하게 한 문제,, 하지만,, 모든 문제를 시원하게 해결해 준 결정적 힌트는 문제 맨 마지막, 5번 예제 설명에 있었다.. '문자열은 제일 앞부터 정해진 길이만큼 잘라야 합..
https://programmers.co.kr/learn/courses/30/lessons/42839 코딩테스트 연습 - 소수 찾기 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 programmers.co.kr 재귀를 이용한 완전탐색으로 풀 수 있었던 문제. 문제를 보자마자 재귀를 통해 완전탐색을 구현해야 함은 알았으나,, 중복 문자를 제거해가며 모든 조합을 어떻게 효율적으로 만들 수 있을지 생각해보다가 substring을 사용. 소수 검증 로직은 몇몇가지 조건으로 예외 처리 후, 제곱근 값까지만 확인. 앞에 0이 붙은 문자열의 경우 int로 parsin..
https://programmers.co.kr/learn/courses/30/lessons/12913# 코딩테스트 연습 - 땅따먹기 땅따먹기 게임을 하려고 합니다. 땅따먹기 게임의 땅(land)은 총 N행 4열로 이루어져 있고, 모든 칸에는 점수가 쓰여 있습니다. 1행부터 땅을 밟으며 한 행씩 내려올 때, 각 행의 4칸 중 한 칸만 밟 programmers.co.kr DP(동적 계획법)을 이용하여 풀 수 있었던 문제. 처음엔 정렬 문제일거라 생각했으나,, 각 행의 열이 다른 값들 중, 가장 큰 값을 다음 행에 더해나가며 정답을 구할 수 있었다. 실행 순서는 다음과 같다 : 1. input 첫번째 행부터 마지막 행까지 확인하며, 2. 다음 행의 c열에 현재 c 행이 아닌 3개의 값 중, 가장 큰 값을 더해..
https://programmers.co.kr/learn/courses/30/lessons/64061# 코딩테스트 연습 - 크레인 인형뽑기 게임 [[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4 programmers.co.kr 인형뽑기에서 뽑은 인형들을 바구니에 담았을 때, 마지막 담았던 인형이 방금 집어 넣은 인형과 같을 경우 터지게 되며, 터진 인형의 개수를 return하는 아주 간단한 문제. LIFO 자료구조, Stack을 이용하면 쉽게 풀 수 있다. 라고 생각하고 Submit 했지만, 몇몇 상황에 대한 예외처리가 필요했다. 실행 순서는 다음과 같다 : 1. 크레인을 내릴 위치가 담긴 moves 배열의 ..