전체 글 227

[Kotlin] Programmers Lv.1 콜라츠 추측

https://school.programmers.co.kr/learn/courses/30/lessons/12943 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Code class Solution { fun solution(num: Int): Int { var number: Long = num.toLong() var answer = 0 while (answer < 500){ if (number == 1L) return answer if (number % 2 == 0L) number /= 2 else number = number * 3 + 1 answer+..

Programmers/Lv. 1 2023.08.21

제10회 소프트웨어 개발보안 시큐어코딩 해커톤 - 최우수상

작년에 내 친구가 소개딩에 나가서 최우수상을 받아왔었다. 그때는 난 어떤 분야로 개발할지 조차 안정한 상태여서 참석을 못했었다. 그러다 안드로이드로 분야도 정한김에 나가기로 맘을 먹고 팀원을 모집했다. 나랑 친한애들은 나랑 분야가 달라서 따로 팀을 만들고, 내 주변 사람들로 다른 팀을 모집해서 지원했다. 이런 저런 일들이 있었고, 어찌어찌 신청서를 제출했다. 8월 7일 예선 발표가 나왔다. 사실 난 우리팀이 떨어질 줄 알았다. 아이디어는 좋았지만, 신청서를 작성하는데 미흡하다고 생각을 해서 불합격일거라 생각하면서 결과를 확인하러 갔다. 어라? 붙었네....? 우리팀 이름이 "어라금지"였다. 하지만 붙자마자 바로 어라?? 어라??? 정말 놀랬다. 그래서 저때부터 무한개발 시작했다. 어찌어찌 개발 다 하고 ..

[Kotlin] Programmers Lv. 1 두 정수 사이의 합

https://school.programmers.co.kr/learn/courses/30/lessons/12912 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Code import kotlin.math.max import kotlin.math.min class Solution { fun solution(a: Int, b: Int): Long = (min(a,b)..max(a,b)).sumOf { it.toLong() } } 이 문제의 함정아닌 함정은 a와 b의 대소관계가 정해져있지 않다는 것이다. 그것도 모르고 (a..b)로 하고는 왜 안되는지 한참 고..

Programmers/Lv. 1 2023.08.19

[Kotlin] Programmers Lv. 1 하사드 수

https://school.programmers.co.kr/learn/courses/30/lessons/12947 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Code class Solution { fun solution(x: Int): Boolean = (x % (x.toString().sumOf { it.digitToInt() })) == 0 } 이것도 생각보다 간단했다. x의 자릿수만큼 계산하는 것이 아닌, 그냥 String으로 만들고 int로 합을 구한다. 그렇게해서 x를 나눠보고 나눠떨어지면 true, 아니면 false다.

Programmers/Lv. 1 2023.08.18

[Kotlin] Programmers Lv.1 정수 내림차순으로 배치하기

https://school.programmers.co.kr/learn/courses/30/lessons/12933 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Code class Solution { fun solution(n: Long): Long = n.toString().toList().sortedDescending().joinToString("").toLong() } 귀찮아서 함수로 해결했다. long을 string으로 만들고, 정렬한 후 String으로 합쳐준 후 다시 Long으로 만들어 줬다.

Programmers/Lv. 1 2023.08.17

[Kotlin] Programmers Lv. 1 정수 제곱근 판별

https://school.programmers.co.kr/learn/courses/30/lessons/12934 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Code import kotlin.math.sqrt class Solution { fun solution(n: Long): Long { var temp = sqrt(n.toDouble()).toLong() return if (temp * temp == n) (temp+1) * (temp+1) else -1 } } 정수 n이 주어졌을 때, 해당 숫자가 특정 숫자의 제곱인지 확인하는 문제다. 가장 쉬..

Programmers/Lv. 1 2023.08.16

[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..