Kotlin

프로그래머스

약수의 개수와 덧셈 코틀린(Kotlin)

이번에 풀어본 문제는 의식의 흐름대로 풀다보니 코드가 길어진 감이 없지 않아 있는데... 아직 줄여쓰는 것이 익숙치 않다. 문제 중첩된 for문과 그 안에서 조건문을 같이 사용하다보니 반복문과 조건문 또는 다른 실행문의 순서가 조금 헷갈리긴 했지만 천천히 '의식의 흐름'대로 되짚어 가며 풀었다. 풀이 가장 먼저 주어지는 두 정수 사이의 수만큼 반복하기 위해 left에서 right까지 반복하도록 조건을 설정했고 각각의 수마다 약수의 개수를 판단하기 위해 해당하는 수를 1부터 1씩 증가시키며 해당하는 수까지 나머지 연산을 통해 약 찾을 때마다 cnt 변수를 1씩 증가시켜 약수의 개수를 저장해두고 반복문이 끝나면 cnt 변수를 통해 약수의 개수가 짝수이면 리턴될 answer 변수에 더해주고 홀수이면 뺄셈을 해..

프로그래머스

부족한 금액 계산하기 코틀린(Kotlin)

이번엔 오랜만에 문제를 풀어봤는데 상당히 간단한 문제였다. 그 동안 구글 플레이에 올렸던 앱 하나에 별점 1점을 받아 해당 문제를 해결하고 다른 고민거리를 생각하다 보니 며칠이 훌쩍 지나버렸다. 아무튼 다시 문제 풀이로 들어가보겠다. 풀이 먼저 price와 count를 이용해 지불해야할 총 금액을 계산했다. 그리고 지불해야할 금액과 가지고 있는 금액을 비교해 금액이 부족하면 부족한 금액을 리턴하고, 금액이 모자라지 않으면 0을 리턴하도록 코드를 짜보았다. 풀이 tempMoney 변수를 Long 타입으로 만든 이유는 리턴이 Long 타입인데 아래의 if-else 문에서 리턴될 answer 변수에 Int타입끼리 연산 후 대입하게 되면 Type mismatch 에러가 발생하기 때문이다.

Language/Kotlin

Android에서 Kotlin을 사용할 때 이점(JetBrains피셜)

먼저 최근에 프로그래머스 거의 문제 풀이글만 올리다 Kotlin에 대해 소개를 할까 생각이 들었다. 프로그래머스 문제를 해결하면서 필요한 메소드나 확장 함수 등을 사용하려고 할 때 나는 주로 코틀린 공식 홈페이지에서 Docs를 찾는 편인데 기본기가 모자라 가끔 알아볼 수 없는 것들이 몇 개 있기 때문이다. 위 제목은 내가 몇몇 회사를 지원하면서 직접 받은 질문 중 하나이기도 하다. 일단, 나는 안드로이드 직군을 희망하고 있는 상태이므로 안드로이드에서 코틀린을 사용할 때의 장점을 적어보려 한다. 시작해보겠다. 1. 가독성이 좋은 적은 코드 사용 이건... 딱히 설명이 구체적이지 않아 스킵... 2. 성숙한 언어와 환경(직역) 2011년에 만들어진 후, 코틀린은 언어뿐만 아니라 전체 생태계까지 지속적으로 개..

프로그래머스

나누어 떨어지는 숫자 배열 코틀린(Kotlin)

오늘 푼 문제는 코틀린의 collections를 잘 사용해야하는 문제였던 것 같다. 문제 처음 문제를 보니 제출 코드에 이미 리턴될 IntArray형 변수가 생성되어 있길래 이 틀을 깨지 않는 선에서 리턴될 배열 길이를 정하려다 보니 당최 길이를 정해야하는 배열의 특성때문에 방법이 떠오르지 않았다. 최근에 Array나 MutableList를 여러번 사용해봐서 그런지 이전에 코틀린 공식 페이지에서 자료를 찾아봤고 몇몇 메소드가 머리 속 저편에 숨어있었는데 기억이 났다. 그래서 떠올린 방법은 arr에서 divisor로 나머지 연산 결과가 0인 녀석들을 MutableList에 추가하고 추가된 MutableList를 IntArray로 변환해 리턴하는 것이었다. 여기서, 고려할 점이 하나 더 있었는데 만약 나누어..

프로그래머스

나머지가 1이 되는 수 찾기 코틀린(Kotlin)

오늘은 Level 1만 풀던 내가 처음 보는 문제인 것 같아 한 번 시도해보게되었다. 문제 이 문제는 단순히 생각하면 풀기 쉬웠다. 먼저, 반복문을 사용해 1부터 주어진 n까지 나머지 연산자를 통해 나머지가 1이 되는 첫 수를 리턴될 answer 변수에 대입하고 반복문을 종료하면 된다. 풀이 이렇게 풀게 되면 나머지가 1의 되는 수 중에 가장 작은 수를 찾을 수 있다. 물론 코드는 조금 깔끔하지 않을 수 있지만 말이다.

프로그래머스

x만큼 간격이 있는 n개의 숫자 코틀린(Kotlin)

오늘 풀어본 문제는 난이도는 무난했지만 몇몇 테스트 케이스에서 통과되지 않는 이슈가 있었다. 문제 문제는 테스트 케이스 1번을 예를 들어보면 주어진 x부터 시작해 x만큼 증가하는 총 5개의 숫자를 LongArray 타입으로 리턴하면 되는 문제였다. 여기서 처음에 들었던 생각은 왜 굳이 LongArray 타입으로 리턴을 해야할까 였다. 그리고 이 의문은 문제를 채점할 때 해결(?)되었다. 풀이 처음 풀이는 위 사진의 풀이와 약간 달랐다. 말 그대로 약간 달랐는데 그 의미는 아예 달랐다. for 문안에 실행문은 원래 아래와 같았다. answer[i] = (x * (i + 1)).toLong() 위 문장과 풀이 사진 안의 실행문의 결과는 어떻게 다를까? 일반적인(Int 범위 안에서 해결이 되는) 상황에서는 두..

프로그래머스

약수의 합 코틀린(Kotlin)

오늘은 비교적 간단한 문제를 풀어보려 한다. 문제 먼저 약수를 어떻게 구하지? 사실 되게 기초적인 내용이지만 몇 초안에 바로 답을 내기가 힘들었다. 그냥 배운지 너무 오래돼서 그런건가 싶기도 했다. 누가 보면 비웃을지도 모를만한 내용이지만 뭐 내가 그런걸 어쩌겠나 싶다. 다만 계속 노력할 뿐이다. 아무튼 약수를 구하는 법을 생각하다보니 그냥 나누어떨어지면 모두 약수라는 생각이 드디어 떠올랐다. 그럼 나누어 떨어지는 수를 찾으면 될 것인데 갯수가... 몇 개더라? 무슨 공식이 있었던 것 같은데 기억이 나지 않는다. 그냥 단순히 1부터 주어진 수까지 반복하면서 나머지 연산이 0이 되면 그 수는 약수이기에 리턴될 answer 변수에 더해주었다. 풀이 for문 안에 n까지 반복할 때 조건이 until이 아닌 ...

프로그래머스

JadenCase 문자열 만들기 코틀린(Kotlin)

오늘은 처음으로 Level 2에 있는 문제를 풀어보았다. 그나마 풀만한 문제를 골라서 풀어봤는데 이 문제는 Level 2에서 가장 쉬운 문제가 아니었을까 싶다. 문제 문제를 보고 나서 전에 자바에서 배웠던 String의 split() 메소드가 생각이 났고 띄어쓰기를 구분자로 나누고 단어마다 첫 글자를 대문자로 바꿔주면 되겠다는 생각을 했다. 그런데 첫 글자를 대문자로 어떻게 바꾸지..? 라는 생각을 하다가 영어로 구글에 검색해보려고 검색어를 떠올리게 되었다. 영어로 대문자가 capital이니까 "kotlin caplitalize" 라고 검색을 해보니 코틀린 공식 문서가 나왔다! 다만, 안드로이드에서 흔하게 볼 수 있는 글자가 보였다. "Deprecated" 아니... 언제부터?? 1.5버전부터라고 한다...

프로그래머스

자연수 뒤집어 배열로 만들기 코틀린(Kotlin)

오늘은 크게 어려운 점이 없어서 바로 본론으로 들어가면 될 듯하다. 문제 이번에 문제를 보고 생각한 풀이는 입력받은 정수를 문자열로 먼저 바꾸고 리턴될 타입이 정수형 배열이기 때문에 미리 리턴될 배열의 길이를 정해놓고 그 안에 요소를 하나씩 주어진 숫자의 역순으로 대입해주면 될 것이다. 풀이 먼저, n을 문자열로 저장할 numberToString 변수를 만들었다. 여기에 정수 n을 toString()으로 문자열로 변환해 대입해주었다. answer는 리턴될 정수형 배열로 만들어져있었지만 처음엔 intArrayOf()를 통해 만들어져 있었고, 이 때 배열의 길이를 정하려고 위처럼 numberToString.length를 파라미터로 주었지만 해당하는 숫자 하나만을 가진 길이 1짜리 배열이 생성되었고... 이를..

프로그래머스

숫자 문자열과 영단어 코틀린(Kotlin)

오늘 풀어본 문제는 2021 카카오 채용연계형 인턴십 문제였다. 이 문제를 풀 때 뭔가 코드를 더 간결하게 작성할 수 있지 않을까하면서 문제를 풀려다보니 내가 코틀린 지식이 부족한 탓에 해결하기가 힘들었다. 그래서 어떻게 보면 무식한? 문제를 푸는 입장에서는 쉬운? 코드로 풀어보았다. 문제 문제에서 입출력 예시를 봤을 때, 입력되는 문자열 s에서 영어로 된 숫자를 정수형 숫자로 바꿔주면 되는 문제였다. 게다가 문제에서 각 숫자에 대응되는 영단어도 표로 제시해주었기 때문에 나는 10가지의 상황만 고려하면 될 것이라 예상했다. 따라서, String형 temp 변수를 만들어 if문을 통해 10번의 검사를 거쳐 모든 영단어를 숫자로 만들어 대입했다. 완성된 temp 변수를 answer 변수에 Int형으로 변환해..

BonusTrack02.dev
'Kotlin' 태그의 글 목록 (7 Page)