본문 바로가기

분류 전체보기

(31)
[Programmers] 튜플 - kotlin 튜플 (Level2) link - 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 1. 문제 파악하기 - 입력 : 튜플로 만든 집합이 배열로 나열된 스트링 (ex. {{2},{2,1},{2,1,3},{2,1,3,4}}) - 출력 : 집합들을 이용해 튜플을 유추하여 튜플을 배열로 리턴한다 *튜플 튜플은 다음과 같은 성질을 가지고 있습니다. 중복된 원소가 있을 ..
[Programmers] 삼각달팽이 - kotlin 삼각달팽이 (Level2) link - https://programmers.co.kr/learn/courses/30/lessons/68645 코딩테스트 연습 - 삼각 달팽이 5 [1,2,12,3,13,11,4,14,15,10,5,6,7,8,9] 6 [1,2,15,3,16,14,4,17,21,13,5,18,19,20,12,6,7,8,9,10,11] programmers.co.kr 1. 문제 파악하기 - 입력 : 삼각형 한변의 길이 n - 출력 : 한변의 길이가 n인 정삼각형을 달팽이 처럼 내부로 들어가는 규칙으로 그린후 순서대로 출력한다 (설명하기가 좀 어렵다..) 1 2 9 3 10 8 4 5 6 7 이런경우 출력은 {1, 2, 9, 3, 10, 8, 4, 5, 6 ,7} 2. 아이디어 - n * n의 ..
[Programmers] 다리를 지나는 트럭 - kotlin 다리를 지나는 트럭 (Level2) link - https://programmers.co.kr/learn/courses/30/lessons/42583 코딩테스트 연습 - 다리를 지나는 트럭 트럭 여러 대가 강을 가로지르는 일차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 다리에는 트럭이 최대 bridge_length대 올라갈 programmers.co.kr 1. 문제 파악하기 - 입력 : 다리 길이 / 다리 감당 가능한 무게 / 지나갈 트럭 리스트 - 출력 : 트럭이 모두 다리를 지나갈때까지 걸리는 시간 출력 - 한 트럭이 다리를 지나갈때는 다리길이만큼의 시간이 소요된다. - 대기중인 트럭의 무게가 더해졌을때 다리가 감당 가능한 무게를 초과..
[Programmers] 소수찾기 - kotlin 소수찾기 (Level2) link - https://programmers.co.kr/learn/courses/30/lessons/42839 코딩테스트 연습 - 소수 찾기 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 programmers.co.kr 1. 문제 파악하기 - 입력 : 숫자로 구성된 문자열 (ex. 17) - 출력 :문자열에 포함된 숫자들로 구성할수있는 숫자들중에서 소수의 개수를 찾는다 2. 아이디어 - 먼저 소수인지 판단할수있는 함수 isP를 생성한다 (소수이면 true / 아니면 false 반환) - 이제 문자열 속 숫자들로 만들수 있는 조..
[Programmers] 가장 긴 팰린드롬 - kotlin 가장 긴 팰린드롬 (Level3) link - https://programmers.co.kr/learn/courses/30/lessons/12904 코딩테스트 연습 - 가장 긴 팰린드롬 앞뒤를 뒤집어도 똑같은 문자열을 팰린드롬(palindrome)이라고 합니다. 문자열 s가 주어질 때, s의 부분문자열(Substring)중 가장 긴 팰린드롬의 길이를 return 하는 solution 함수를 완성해 주세요. 예를들 programmers.co.kr 1. 문제 파악하기 팰린드롬 - 앞뒤로 뒤집어도 똑같은 문자열을 말한다 ex) abcba / abccba 문자열이 주어졌을때 가장긴 팰린드롬 길이를 구한다 - 입력 : 문자열 (ex. eabcbai) - 출력 : 문자열에서 가장 긴 팰린드롬 길이를 구한다 (ex...
[GIT] git hook commit-msg 적용하기 git hook을 적용하려고 한다 우선 나의 경우 git hook을 적용하려고 하는 목적은 정적분석 툴이나, Test code 들을 git에 push 하기전에 미리 자동으로 확인해서 push된 코드에 quality를 보장하려고 하는것이다. 이번 포스팅에서는 먼저 commit message rule을 적용해 보도록 하겠다 음 .. 이유는? commit message는 협업에 있어서 중요하고, rule을 정하고 지키며 일관되고 보기좋은 commit message를 유지하고 싶어서 .. 1. git hook 의 공식 docs확인 link - https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks Git - Git Hooks If you’re writing a sc..
[Android] detekt 적용하기 정적 분석 툴을 검색하다보면 ktlint vs detekt 두가지를 비교하는 글이 많이 있다. 개인의 관점에 따라 선호하는 부분이 다르겠지만 굳이 차이점을 들자면 ktlint는 공식 가이드에 기반한 검사에 더 중점을 두고있고, detekt는 더 많은 옵션을 이용하여 구성할 수 있고 code quality를 높이는 가이드롤 기본으로 가지고 있다는것? 정도인것같다. 협업을 할때 공식적인 규칙 이외의 부가적인 규칙들이 많아진다면 생산성이 저하될수 있지만 또 코드 퀄리티에 있어서 장점이 있고, 각각 프로젝트의 특성에 맞게 적절한 사용을 하는것이 좋을것같다. 일단 둘다 적용을 하겠다 https://detekt.github.io/ https://detekt.github.io/ detekt.github.io 1. o..
[Android] ktlint 적용하기 프로젝트를 최초 생성하면서 ktlint를 적용해보려고 한다 ktlint는 kotlin 공식 codeing convention을 기준으로 code를 분석해주고, 올바르게 수정까지 도와주는 정적분석 도구이다. 여러가지 정적 분석 도구가 있는데 공식 style을 기본으로 제공하여 대세인듯 하여 ktlint를 먼저 적용해보겠다! 1. 공식홈페이지의 build.gradle 추가하기 https://ktlint.github.io/ 공식홈페이지에서 build.gradle 예시를 제공한다. 나의 경우 ktlint directory 를 생성하고 아래 gradle file을 생성했다. gradle file은 file을 생성하고 파일명을 명명할때 확장자를 gradle로 명기하면 생성된다. 2. 작성 gradle 1 2 3 4..
[Kotlin Bootcamp for Programmers] - 2. Kotlin basics 요약 공부(1) 시작하기에 앞서 필요한 기본지식 IntelliJ IDEA 로 새로운 프로젝트 만들기 Kotlin REPL코드 실행하는법 배울것 kotlin data types, operators, variables booleans와 조건문 동작 nullable, non-nullable 의 차이 array, list, loop 동작 Operators / type numeric operators 코틀린은 다른 언어와 마찬가지로 +, -, *, / 를 사용한다 Int, Long, Double, Float 등의 숫자 type을 제공한다 정수형, 실수형 타입 간 교차 실행 해본다 number 함수 kotlin은 숫자를 primitive(기본 형, 기본 type)으로 제공하지만, 객체와 같이 함수를 호출 할 수 있다 boxing ..
[Kotlin Bootcamp for Programmers] - 1. get Started 정리 서론 구글 공식 사이트에서 제공하는 학습 과정을 진행하며 평소에 잘못 알고있었던것이 있는지 더 배울점이 있는지 확인하는 시간을 갖고자 한다. 가장 기본 적인 과정부터 4가지 추천 강의가 있는데 순차적으로 모두 수행해보려 한다 그 첫번째 강의는 kotlin 기본과정으로 아래 링크와 같다 https://developer.android.com/courses/kotlin-bootcamp/overview 해당 과정을 진행하며 후기 및 새롭게 배운점을 정리 및 공유한다! 시작~ 시작하기에 앞서 필요한 기본지식 객체지향과, Java or C# 등의 언어에 익숙하면 좋다 class, method, 예외처리등을 다른언어로 할 수 있으면 좋다 IDE는 intelliJ, AndroidStudio, Eclipse, Visua..