내 풀이 class Solution { fun solution(price: Int, money: Int, count: Int): Long { var answer: Long = 0 var total: Long = 0 for(i in 1..count) { total += (i * price) } if ( money - total < 0) answer = total - money else answer = 0 return answer } } 이용 횟수가 늘어갈 수록 price가 배로 늘어나는 걸 그냥 for 문에 넣었다....만능 for문... 다른 사람 풀이 class Solution { fun solution(price: Int, money: Int, count: Int): Long = (1..count)...
코딩테스트
내 풀이 class Solution { fun solution(s: String): String { var answer = s.toCharArray().sortedArrayDescending() return String(answer) } } 문자열 -> CharArray -> 배열내림차순정렬 -> String() 여전히 헷갈려서 여러번 테스트한 것 sort : 원본 배열 정렬 sorted : 새로운 리스트 반환 sortedArray : 새로운 배열 반환 처음에 sorted로 정렬했더니 List로 나와서 String 으로 감싸지지가 않았다. List 의 각 요소들을 묶어 문자열로 만들고 싶을 때 joinToString(separator, prefix, postfix, limit) separator : 각 ..
내 풀이 class Solution { fun solution(left: Int, right: Int): Int { var answer: Int = 0 var count: Int = 0 for(i in left..right){ for(ii in 1..i){ if(i %ii == 0) count++ } if (count %2 ==0) answer += i else answer -= i count = 0 } return answer } } left 와 right 를 범위로 for문을 넣어서 약수가 나올때마다 변수 count 에 1씩 더해주고 총 count 가 짝수이면 덧셈 홀수이면 뺄셈을 해줬다. 그 뒤 for문을 반복하기 전에 count 값을 0으로 초기화했다. 한 번에 완성은 했는데 딱 봐도 복잡하다😒 ..
for문 중첩해서 돌리는 것 방법밖에 생각이 안난다.😰😰😰 class Solution { fun solution(a: IntArray, b: IntArray): Int { var answer: Int = 0 for((i, a) in a.withIndex()){ for((ii,b)in b.withIndex()){ if(i == ii) answer += (a * b) } } return answer } } 내적 : 두 서열의 상응하는 값들의 곱을 더한 것 다른 사람 풀이 class Solution { fun solution(a: IntArray, b: IntArray): Int = a.mapIndexed { index, it -> it * b[index] }.sum() } 인덱스로 바로 꺼내오는걸 왜 생각못..
문제보고 빵 터졌다. 수박수박 class Solution { fun solution(n: Int): String { var answer = "수박" if(n %2 == 0){ answer = answer.repeat(n/2) } else { answer = answer.repeat(n/2) + "수" } return answer } .repeat() 함수로 문자열을 반복했다. 다른 사람 풀이 class Solution { fun solution(n: Int): String = String(CharArray(n,{i-> if(i%2==0) '수' else '박'})) } CharArray : 원시타입 Char 로 이루어진 배열 사이즈가 n이며 각 인덱스에 대해서 if 문으로 짝수일때 "수" 홀수일 때 "박..
문자열 s의 길이가 짝수인지 홀수인지 구분해서 짝수면 길이를 2로 나눈 몫에 해당하는 인덱스로, 홀수면 길이를 2로 나눈 몫에서 1을 뺀 인덱스와 몫에 해당하는 인덱스를 반환하게 했다. 그런데 문자열에서 인덱스로 요소를 가져오니까 타입이 Char으로 추론이 되어서 강제로 String으로 변환시켜주어야 했다. class Solution { fun solution(s: String): String { var answer: String = "" var a = s.length if(a %2 ==0){ answer = s[a/2-1].toString() + s[a/2].toString() } else { answer = s[a/2].toString() } return answer } } 다른 사람 풀이 class..
풀이 class Solution { fun solution(numbers: IntArray): Int { var answer: Int = 0 for(i in 0..9){ if(numbers.indexOf(i)==-1){ answer += i } } return answer } } 구현은 바로 했는데 다른 사람 풀이 보면 백퍼 이것보다 훨씬 더 간단할 것 같다 ㅎ fold 메소드를 드디어 처음 써봤다. 그런데 for 문이랑 별 차이가 없다. class Solution { fun solution(numbers: IntArray): Int { var answer: Int = (0..9).fold(0){acc,num -> acc + if(numbers.indexOf(num) ==-1) num else 0 } r..
옛날에 컴활 딸 때 이런 비슷한 걸 했던 것 같은데 🤔 어떤 메소드를 쓰는 걸까... 문자열 일부를 제외한 나머지를 일정한 값으로 바꾼다? 문자열을 map 메소드로 문자열배열로 바꾸고 for 반복문으로 인덱스가 문자열사이즈의 5보다 작거나 같으면 * 으로 값을 할당하고 크면 그대로 할당했다. class Solution { fun solution(phone_number: String): String { var answer = "" var p = phone_number.map{it.toString()} for((index, value) in p.withIndex()) { if(index
class Solution { fun solution(absolutes: IntArray, signs: BooleanArray): Int { var answer: Int = 0 for((i,s) in signs.withIndex()){ for((ii, a) in absolutes.withIndex()) { if(s == true && i == ii) { answer += a } else if ( s == false && i == ii ){ answer -= a } } } return answer } } 각각의 배열의 인덱스가 일치하는 경우 값을 더하거나 빼서 구했다. 줄이고 싶은데 방법을 모르겠다 🤨 다른 사람 풀이 class Solution { fun solution(absolutes: IntArray..
풀이 class Solution { fun solution(arr: IntArray, divisor: Int): IntArray { var answer = intArrayOf() for(i in arr) { if ( i %divisor == 0){ answer += i } } if (answer.size == 0) answer += -1 return answer.sortedArray() } } IntArray 클래스의 plus 연산자 함수 사용 arr += element Array 정렬 sort -> 원본 배열 정렬 sorted -> 정렬된 새로운 배열 반환 이 둘 사용이 헷갈린다. answer.sort() return answer .sort() 로 정렬시키고 반환 return answer.sort() ..