전체 글 211

[Kotlin] Programmers Lv. 1 문자열을 정수로 바꾸기

https://school.programmers.co.kr/learn/courses/30/lessons/12925 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Code class Solution { fun solution(s: String): Int = s.toInt() } 이게 왜 Lv.1 ..? 사실 부호가 껴있어도 바로 Int로 바뀌는지는 몰랐는데 덕분에 알게됐다. "-123"이 바로 -123이 되네

Programmers/Lv. 1 2023.08.15

[Kotlin] Programmers Lv. 1 x만큼 간격이 있는 n개의 숫자

https://school.programmers.co.kr/learn/courses/30/lessons/12954 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Code class Solution { /* fun solution(x: Int, n: Int): LongArray { var answer = longArrayOf() var temp:Long = 0 repeat(n){ temp += x answer = answer.plus(temp) } return answer } */ fun solution(x: Int, n: Int): LongArray = ..

Programmers/Lv. 1 2023.08.14

[Kotlin] Programmers Lv. 1 나머지가 1이 되는 수 찾기

https://school.programmers.co.kr/learn/courses/30/lessons/87389 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Code class Solution { fun solution(n: Int) = (1..n).first { n % it == 1 } /* fun solution(n: Int): Int { var answer: Int = 0 for(i in 1 until n){ if (n % i == 1) return i } return n-1 } */ } 사실 더 좋은 아이디어가 있는지는 모르겠지만, 하나씩 순회..

Programmers/Lv. 1 2023.08.13

[Kotlin] toInt(), digitToInt() 뭐가 다를까?

코틀린으로 알고리즘 문제를 풀거나, 코딩을 하다보면 어떨때는 toInt, 어떨때는 digitToInt를 사용한다. 어떨때 해당 함수를 사용할까? 먼저 toInt()를 보자. 그러고 digitToInt()를 보면 내부 코드가 이렇게 돼있다. 이것만 보고는 잘 이해가 안갈 것이다. 간단하게 설명을 하면 toInt()는 String에서 호출할 때와 Char에서 호출할 때 기능이 다르다. String에서 호출한다면 숫자로된 문자열을 숫자 그자체로 바꿔주지만 Char에서 호출한다면 해당 문자의 아스키코드값을 준다. "123".toInt() // -> 123 '1'.toInt() // -> 49 그래서 필요한게 digitToInt()이다. 이게 우리가 원하는 Char의 toInt()역할을 수행해준다. '1'.dig..

[Kotlin] Programmers Lv. 1 자릿수 더하기

https://school.programmers.co.kr/learn/courses/30/lessons/12931 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Code class Solution { fun solution(n: Int): Int = n.toString().sumOf { it.digitToInt() } } 각 자리수를 더하면 된다. 물론 전통적인 방법인 10으로 나눈 나머지를 sum에 더하고 10으로 나누는 그런 방법을 써도 되지만 귀찮았다. 하나씩 적는것보다 저게 더 간단하니까... sumOf라는 함수를 사용하기 위해 n을 String으..

Programmers/Lv. 1 2023.08.11

[Jetpack Compose] BackHandler : 뒤로가기 감지

어플을 사용하다보면 뒤로가기를 눌렀을 때 이런 창이 뜰때가 있다. 이건 어떻게 하는걸까? 뒤로가기를 감지하고, 특정 동작을 작동시켜야 한다. 그렇기때문에 사용하는 것이 BackHandler이다. @Composable fun BackOnPressed() { val context = LocalContext.current var backPressedTime = 0L BackHandler(enabled = true) { if(System.currentTimeMillis() - backPressedTime

[Kotlin] Programmers Lv. 1 자연수 뒤집어 배열로 만들기

https://school.programmers.co.kr/learn/courses/30/lessons/12932 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Code class Solution { fun solution(n: Long): IntArray = n.toString() .reversed() .map { it.digitToInt() }.toIntArray() } 처음에는 입력받은 값을 각각 분리해야한다 라는 생각이 너무 커서 split을 썼었다. split("")을 쓰니까 ""값이 두개가 생겼고, 이를 없애기 위해 filter{it!=""}을..

Programmers/Lv. 1 2023.08.09

[Kotlin] Programmers Lv. 1 평균 구하기

https://school.programmers.co.kr/learn/courses/30/lessons/12944 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Code class Solution { //fun solution(arr: IntArray): Double = arr.sum()/arr.size.toDouble() fun solution(arr: IntArray): Double = arr.average() } 당연히 평균이라고 해서 합을 구하고, 갯수로 나누는 그런 방식을 생각했다. 그래서 sum()과 size를 사용해서 결과를 만들었다. 그런데..

Programmers/Lv. 1 2023.08.08

[Kotlin] Programmers Lv. 1 짝수와 홀수

https://school.programmers.co.kr/learn/courses/30/lessons/12937 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Code class Solution { fun solution(num: Int): String = if( num % 2 == 0 ) "Even" else "Odd" } 짝 홀 구하는거 정도야 뭐.... 2로 나누고 나머지 확인하면 된다. 이게 왜 Lv. 1....? Lv. 0인거 같은데...

Programmers/Lv. 1 2023.08.07

[Kotlin] Programmers Lv. 1 약수의 합

https://school.programmers.co.kr/learn/courses/30/lessons/12928 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Code class Solution { //fun solution(n: Int): Int = (1 .. n).filter { n % it == 0 }.sum() fun solution(n: Int): Int{ var set = hashSetOf() for (i in 1 .. sqrt(n.toDouble()).toInt()){ if (n % i == 0) { set.add(i) set.add(n /..

Programmers/Lv. 1 2023.08.06