[프로그래머스/Kotlin]Lv1 - 햄버거 만들기
·
프로그래머스/Kotlin | Level1
오늘의 Kick StringBuilder를 이용하여 시간 복잡도 줄이기  프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제문제 설명햄버거 가게에서 일을 하는 상수는 햄버거를 포장하는 일을 합니다. 함께 일을 하는 다른 직원들이 햄버거에 들어갈 재료를 조리해 주면 조리된 순서대로 상수의 앞에 아래서부터 위로 쌓이게 되고, 상수는 순서에 맞게 쌓여서 완성된 햄버거를 따로 옮겨 포장을 하게 됩니다. 상수가 일하는 가게는 정해진 순서(아래서부터, 빵 – 야채 – 고기 - 빵)로 쌓인 햄버거만 포장을 합니다. 상수는 손이 굉장히 빠르기 때문에 상수가 포장하는 동안 속 재료가 추가적으로 들어오는 일은 없으며, 재..
Android Studio에서 Proto DataStore 설정하는 방법 (gradle kotlin)
·
Android/Jetpack
Proto DataStore에 대한 친절한 정보가 많이 없어서제가 열심히 삽질해가며 작성한 글입니다... 😭 참고한 소스코드 : NowInAndroid[versions]# datastoreandroidxDataStore = "1.1.1"protobufPlugin = "0.9.4"protobuf = "4.26.1"junitJunit = "4.12"[libraries]# AndroidXandroidx-dataStore = { group = "androidx.datastore", name = "datastore", version.ref = "androidxDataStore" }androidx-dataStore-core = { group = "androidx.datastore", name = "datastor..
[Android/Error]Cannot add a AndroidSourceSet with name 'debug' as a AndroidSourceSet with that name already exists
·
Android/에러 및 이슈 사항
개요새로운 프로젝트에서 Proto DataStore를 도입하기 위해 DataStore의 Proto 모듈을 추가하였다.해당 모듈 Gradle 작성 중에 한 오류를 만나게 되었다. A problem occurred configuring project ':core:datastore-proto'. > Cannot add a AndroidSourceSet with name 'debug' as a AndroidSourceSet with that name already exists. 이 오류는 AndroidSourceSet을 이미 정의된 이름(debug 또는 release)으로 다시 추가하려고 할 때 발생하는 것이었다. 그렇다면 이 오류를 발생시킨 코드는 무엇일까.원인androidComponents.beforeVar..
Preference DataStore와 Proto DataStore의 차이
·
Android/Jetpack
개요SharedPreferences는 이미 무덤으로 들어간지 오래.하지만 현재 회사는 아주 아주 오래된 프로젝트였고, 여전히 SharedPreferences를 사용하고 있었다.데이터 무결성이 지켜지지 않아 자꾸 문제가 발생하였기에 마이그레이션을 하기로 결정 !! 이전 회사에서 사용했던 방법은 JetPack에서 나온 DataStore였다.당연하게 써왔던 DataStore의 개념이 NowInAndroid를 보며 무너졌다. Proto DataStore ???그게 대체 뭔데 !!!!!!! 모르면 정리해야지...정리1. Preference DataStore란?Key-Value 형식으로 데이터를 저장하는 방법이다.SharedPreferences의 방식과 유사하다.단, 구조화 된 데이터는 지원하지 않으며 Boolea..
[프로그래머스/Kotlin]Lv0 - 안전지대
·
프로그래머스/Kotlin | Level1
프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제문제 설명다음 그림과 같이 지뢰가 있는 지역과 지뢰에 인접한 위, 아래, 좌, 우 대각선 칸을 모두 위험지역으로 분류합니다.지뢰는 2차원 배열 board에 1로 표시되어 있고 board에는 지뢰가 매설 된 지역 1과, 지뢰가 없는 지역 0만 존재합니다.지뢰가 매설된 지역의 지도 board가 매개변수로 주어질 때, 안전한 지역의 칸 수를 return하도록 solution 함수를 완성해주세요.제한사항board는 n * n 배열입니다.1 ≤ n ≤ 100지뢰는 1로 표시되어 있습니다.board에는 지뢰가 있는 지역 ..
[프로그래머스/Kotlin]Lv0 - 겹치는 선분의 길이
·
프로그래머스/Kotlin | Level1
프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제문제 설명선분 3개가 평행하게 놓여 있습니다. 세 선분의 시작과 끝 좌표가 [[start, end], [start, end], [start, end]] 형태로 들어있는 2차원 배열 lines가 매개변수로 주어질 때, 두 개 이상의 선분이 겹치는 부분의 길이를 return 하도록 solution 함수를 완성해보세요.lines가 [[0, 2], [-3, -1], [-2, 1]]일 때 그림으로 나타내면 다음과 같습니다.선분이 두 개 이상 겹친 곳은 [-2, -1], [0, 1]로 길이 2만큼 겹쳐있습니다.제한사항l..
[프로그래머스/Kotlin]Lv2 - 멀쩡한 사각형
·
프로그래머스/Kotlin | Level2
프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제문제 설명가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 따라 1cm × 1cm의 정사각형으로 잘라 사용할 예정이었는데, 누군가가 이 종이를 대각선 꼭지점 2개를 잇는 방향으로 잘라 놓았습니다. 그러므로 현재 직사각형 종이는 크기가 같은 직각삼각형 2개로 나누어진 상태입니다. 새로운 종이를 구할 수 없는 상태이기 때문에, 이 종이에서 원래 종이의 가로, ..
[프로그래머스/Kotlin]Lv2 - 우박수열 정적분
·
프로그래머스/Kotlin | Level2
프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제문제 설명콜라츠 추측이란 로타르 콜라츠(Lothar Collatz)가 1937년에 제기한 추측으로 모든 자연수 k에 대해 다음 작업을 반복하면 항상 1로 만들 수 있다는 추측입니다. 1-1. 입력된 수가 짝수라면 2로 나눕니다.1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더합니다.2.결과로 나온 수가 1보다 크다면 1번 작업을 반복합니다.  예를 들어 주어진 수가 5 라면 5 ⇒ 16 ⇒ 8 ⇒ 4 ⇒2 ⇒ 1 이되어 총 5번만에 1이 됩니다.수가 커졌다 작아지기를 반복하는 모습이 비구름에서 빗방울이 오르락..
Android Jetpack ComposeUI 기초 문법 및 특징
·
Android/UI-UX 디자인
ComposeUI 강의를 열심히 봤는데, 아무리 따라해도 머리에서 휘발되어버리는 느낌이다.직접 Compose를 이용한 토이 프로젝트를 하기 전에 전체적으로 문법 정리를 먼저 해야할 것 같았다.  1. @Composable 애너테이션 Composable 함수Jetpack Compose에서 UI를 정의하는 기본 단위함수에 @Composable 애너테이션을 붙이면 이 함수는 UI 요소를 그릴 수 있게 된다.@Composablefun Greeting(name: String) { Text(text = "Hello, $name!")} 2. Text 텍스트 출력텍스트를 화면에 표시하는 가장 기본적인 컴포넌트이다.@Composablefun SimpleText() { Text(text = "Hello, Wor..
[프로그래머스/Kotlin]Lv2 - 리코챗 로봇
·
프로그래머스/Kotlin | Level2
프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제문제 설명리코쳇 로봇이라는 보드게임이 있습니다.이 보드게임은 격자모양 게임판 위에서 말을 움직이는 게임으로, 시작 위치에서 목표 위치까지 최소 몇 번만에 도달할 수 있는지 말하는 게임입니다.이 게임에서 말의 움직임은 상, 하, 좌, 우 4방향 중 하나를 선택해서 게임판 위의 장애물이나 맨 끝에 부딪힐 때까지 미끄러져 이동하는 것을 한 번의 이동으로 칩니다.다음은 보드게임판을 나타낸 예시입니다....D..R .D.G... ....D.D D....D. ..D.... 여기서 "."은 빈 공간을, "R"은 로봇의 처음..
[프로그래머스/Kotlin]Lv2 - 당구 연습
·
프로그래머스/Kotlin | Level2
프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제문제 설명프로그래머스의 마스코트인 머쓱이는 최근 취미로 당구를 치기 시작했습니다.머쓱이는 손 대신 날개를 사용해야 해서 당구를 잘 못 칩니다. 하지만 끈기가 강한 머쓱이는 열심히 노력해서 당구를 잘 치려고 당구 학원에 다니고 있습니다.오늘도 당구 학원에 나온 머쓱이에게 당구 선생님이"원쿠션"(당구에서 공을 쳐서 벽에 맞히는 걸 쿠션이라고 부르고, 벽에 한 번 맞힌 후 공에 맞히면 원쿠션이라고 부릅니다) 연습을 하라면서 당구공의 위치가 담긴 리스트를 건네줬습니다. 리스트에는 머쓱이가 맞춰야 하는 공들의 위치가 ..
Github Actions로 업무 자동화 도입하기 #4. Jobs, Step, Actions, Runners
·
개발/버전 관리
Github Actions로 업무 자동화 도입하기 #1 : Github Actions란?Github Actions로 업무 자동화 도입하기 #2 : Workflows (워크플로우) Github Actions로 업무 자동화 도입하기 #3 : Workflows를 트리거 하는 이벤트  GithubActions의 구성요소를 정의하는 데에 많은 시간을 쏟고 싶지 않다.그래서 나머지 구성요소를 싹 묶어서 정리하기로 했다 ㅎㅎ;; 1. Jobs1-1. Job 란?Jobs는 Workflows 내에서 실행되는 개별 작업 단위이다.워크플로우는 여러 개의 잡으로 구성될 수 있으며, 각 Job은 독립적으로 실행된다.1-2. Job의 특징독립성: 각 Job은 독립적으로 실행되며, 필요에 따라 다른 Job에 의존성을 설정할 수 있..
[프로그래머스/Kotlin]Lv1 - 숫자 문자열과 영단어
·
프로그래머스/Kotlin | Level1
프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제문제 설명네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다.다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다.1478 → "one4seveneight"234567 → "23four5six7"10203 → "1zerotwozero3"이렇게 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s가 매개변수로 주어집니다. s가 의미하는 원래 숫자를 return 하도록 solu..
Github Actions로 업무 자동화 도입하기 #3 : Workflows를 트리거 하는 이벤트
·
개발/버전 관리
Github Actions로 업무 자동화 도입하기 #1 : Github Actions란?현재 나의 목표가 하나 있다.회사 내 앱에 Github Actions를 도입하여 앱 검수 요청까지 완료하기 !!그러기 위해선 우선 Github Actions가 무엇인지 확인해봐야 한다. 참고: https://docs.github.com/ko/actions/learanovice-dp.tistory.com Github Actions로 업무 자동화 도입하기 #2 : Github Actions 구성요소 (1) - Workflows (워크플로우)Github Actions로 업무 자동화 도입하기 #1 : Github Actions란?현재 나의 목표가 하나 있다.회사 내 앱에 Github Actions를 도입하여 앱 검수 요청까지..
Github Actions로 업무 자동화 도입하기 #2 : Workflows (워크플로우)
·
개발/버전 관리
Github Actions로 업무 자동화 도입하기 #1 : Github Actions란?현재 나의 목표가 하나 있다.회사 내 앱에 Github Actions를 도입하여 앱 검수 요청까지 완료하기 !!그러기 위해선 우선 Github Actions가 무엇인지 확인해봐야 한다. 참고: https://docs.github.com/ko/actions/learanovice-dp.tistory.com 챕터 1에서는 Github Actions가 무엇인지를 정리했다. (글 상단 링크 참고) 이번 글에서는 챕터 1에서 잠깐 언급된 Github Actions 구성요소에 대한 자세한 설명을 차근차근 정리해보려고 한다. 그전에 앞서 구성요소는 어떤 것들이 있는지 간략하게 정리하자면 아래와 같다. 이벤트(Event): 저장소에서..
뿌꾸 빵
'분류 전체보기' 카테고리의 글 목록