프로그래머스(Kotlin)_ Lv0 (2)
(24.03.19)
- n의 배수
class Solution {
fun solution(num: Int, n: Int): Int {
var answer: Int = 0
if(num % n == 0){
return 1
}else return 0
}
}
- 공배수
class Solution {
fun solution(number: Int, n: Int, m: Int): Int {
var answer: Int = 0
if(number % n == 0 && number % m == 0){
return 1
}else return 0
}
}
- 출력에 따라 다른 값 반환하기 : sum(), sunOf{}
class Solution {
fun solution(n: Int): Int {
var answer: Int = 0
if(n % 2 == 0){
for(i in 2..n step(2))
answer += i*i
}else {
for(i in 1..n step(2))
answer += i
}
return answer
}
}
프로그래머스(Kotlin)_ 자릿수 더하기 (tistory.com)
프로그래머스(Kotlin)_ 자릿수 더하기
1. .sumOf{} 사용. class Solution { fun solution(n: Int): Int = n.toString().toList().sumOf { it.digitToInt() } } sum() : List의 모든 요소의 합을 계산. 모든 숫자 데이터 유형 사용 가능. sumOf{} : 개체 목록 내 특정 필드의
hyelan-note.tistory.com
- 조건 문자열
class Solution {
fun solution(ineq: String, eq: String, n: Int, m: Int): Int {
var answer: Int = 0
when(ineq+eq){
">=" -> answer = if(n >= m) 1 else 0
"<=" -> answer = if(n <= m) 1 else 0
">!" -> answer = if(n > m) 1 else 0
"<!" -> answer = if(n < m) 1 else 0
}
return answer
}
}
- flag에 따라 다른 값 반환하기
class Solution {
fun solution(a: Int, b: Int, flag: Boolean): Int {
var answer: Int = 0
if(flag == true){
answer = a+b
}else answer = a-b
return answer
}
}
(24.03.20)
- 코드 처리하기
class Solution {
fun solution(code: String): String {
var answer: String = ""
var mode = true
for(i in 0..code.length-1){
if(code[i] == '1'){
mode = !mode
continue
}
if(mode){
if(i%2 == 0) answer += code[i].toString()
}else{
if(i%2 == 1) answer += code[i].toString()
}
}
if(answer.isEmpty()) answer += "EMPTY"
return answer
}
}
- 등차수열의 특정한 항만 더하기
fun solution(a: Int, d: Int, included: BooleanArray): Int {
var answer: Int = 0
for(i in 0 until included.size){
if(included[i]) answer += (a+d*i)
}
return answer
}
}
- 주사위 게임 2
class Solution {
fun solution(a: Int, b: Int, c: Int): Int {
var answer: Int = 0
if(a != b && a != c && b != c ){
answer = a + b + c
}else if(a == b && a ==c){
answer = (a + b + c) * (a*a + b*b + c*c) * (a*a*a + b*b*b + c*c*c)
}else{
answer =(a + b + c) * (a*a + b*b + c*c)
}
return answer
}
}
- 원소들의 곱과 합 : reduce()
class Solution {
fun solution(num_list: IntArray): Int {
var num1 = 1
var num2 = 0
for(i in num_list.indices){
num1 *= num_list[i]
num2 += num_list[i]
}
if(num1 < num2*num2) return 1 else return 0
}
}
//각 원소들을 연산하여 전체 연산의 결과를 반환
//초기값 : 컬렉션의 첫번째 요소
//반환값 : 컬렉션의 자료형
fun <S,T : S> Iterable<T>, reduce{operation : (acc:S,T) -> S) : S
val list = listOf(1,2,3,4,5)
val reduceList = list.reduce{total, v -> total + v}
println(reduceList)//15
- 이어 붙인 수 : filter{}, forEach{}
class Solution {
fun solution(num_list: IntArray): Int {
val num1 = num_list.filter {it % 2 == 0}.joinToString("").toInt()
val num2 = num_list.filter {it % 2 == 1}.joinToString("").toInt()
return num1+num2
}
}
(24.03.21~26)
- 마지막 두 원소
- lastIndex : 문자열의 마지막 인덱스을 알려줌
class Solution {
fun solution(num_list: IntArray): IntArray {
var last = num_list[num_list.lastIndex]
var last2 = num_list[num_list.lastIndex-1]
return num_list + if(last > last2) last-last2 else last*2
}
}
class Solution {
fun solution(num_list: IntArray): IntArray {
var answer = num_list
val s = num_list.size-1
//size는 배열의 크기이지만 인덱스가 0부터 시작하기 때문에 0..n-1
//size-1을 해줌으로써 마지막 인덱스를 지칭하게 됨
if (num_list[s] > num_list[s-1]) {
answer += num_list[s] - num_list[s-1]
} else {
answer += num_list[s] * 2
}
return answer
}
}
- 수 조작하기 1
class Solution {
fun solution(n: Int, control: String): Int {
var answer: Int = n
for(i in control.indices){
when(control[i]){
'w' -> answer += 1
's' -> answer -= 1
'd' -> answer += 10
else -> answer -= 10
}
}
return answer
}
}
- 수 조작하기 2
class Solution {
fun solution(numLog: IntArray): String {
var answer = ""
for (i in 1..numLog.lastIndex) {
when {
numLog[i] - numLog[i - 1] == 1 -> answer += "w"
numLog[i] - numLog[i - 1] == -1 -> answer += "s"
numLog[i] - numLog[i - 1] == 10 -> answer += "d"
numLog[i] - numLog[i - 1] == -10 -> answer += "a"
}
}
return answer
}
}
- 수열과 구간 쿼리 3
class Solution {
fun solution(arr: IntArray, queries: Array<IntArray>): IntArray {
var answer: IntArray = intArrayOf()
for (q in queries) {
var a = arr[q[0]]
var b = arr[q[1]]
arr[q[0]] = b
arr[q[1]] = a
}
return arr
}
}