[Kotlin] 프로그래머스 스쿨 Lv.0 문제 풀이

Jean·2023년 8월 1일
0
post-thumbnail

@짝꿍이 이거 완전 나 같다고 공유해준 개발자 밈

오늘은 자율 실습시간인데 이론 공부를 하려다가 문제가 풀고싶어져서
프로그래머즈 문제를 풀었다.

문제 : 정수의 수 만큼 문자열 반복

class Solution {
    fun solution(my_string: String, k: Int): String {
        var answer: String = ""
        for(i in 0 until k) {
            answer += my_string
        }
        return answer
    }
}

//코드 해설 :
새 문자열 변수 answer를 초기화 합니다.
왜냐면 여기다가 결과값을 담을 거니까요.

그리고 제가 원하는 값은 반복되는 문자열이었습니다.
나는 반복하면 for문 말고는 생각나는게 없었으니 for를 씁니다.

반복하는 범위는 0 until k 입니다. 0 in k-1을 해도 괜찮습니당
정수 k의 수 만큼 반복할거잖아요? 그니까 k만큼 반복해줍니다.

그리고 나서 뭘 반복할꺼에여?문자열 my_string을 반복합니다.
그걸 비어있던 answer에 담아주면 끝

문제 : 더 크게 합치기

class Solution {
    fun solution(a: Int, b: Int): Int {
      var str1:String = a.toString()
        var str2:String = b.toString()
        var mynumber1 =str1 + str2
        var mynumber2 = str2 + str1
        if(mynumber1 > mynumber2) {
            return mynumber1.toInt()
        }
        if(mynumber2 > mynumber1) {
            return mynumber2.toInt()

        } else {
            return mynumber1.toInt()
        }

    }
}

#코드 해설 :
이게 좀 어려웠습니다.

왜냐면 a,b 모두 Int인데 String처럼 써야했거든요.
일단 toString()을 쓰면 되겠구나~ 라고 생각은 했는데 쓰는 방법을 몰라서 짝꿍한테 물어보고 구글에다 검색을 했습니다.
변수 뒤에다가 .(dot)붙이고 쓰면 됩니다.

일단 Int인 a,b를 모두 문자열로 바꿔줍니다.
그리고 새 변수를 선언하고 문자열로 바꾼 a,b를 이어줍니다.
또한 b,a도 이어줍니다.

둘 중 큰 수를 출력할 것이기 때문입니다.

이게 크면, 저걸 출력하고 저게 크면 이걸 출력한다.
if문이니까 if를 써용
키보드 두드려서 내가 하고싶은대로 써준 후 출력합니다.

아그런데 형변환하는걸 깜빡해서 오류가 났습니다.
return 하는 변수 뒤에 toInt()다 붙여줍니다.
왜냐면 그렇게안하면 String이니까요.
그럼 끝

느낀점 :
놀랍게도 오늘은 챗지피티의 도움없이 해냈습니다. 그래서 뿌듯합니다.
하지만 언제나 그렇듯 나보다 훨씬 더 짧은 타인의 코드를 볼 때마다
'아 왜 이 생각을 못했지?' 라고 생각이 드네용 근데 뭐 난 개발자안할거니까.. ㄱㅊ

  • 다른 사람의 풀이
import kotlin.math.*

class Solution {
    fun solution(a: Int, b: Int): Int {
        return max("$a$b".toInt(), "$b$a".toInt())
    }
}
class Solution {
    fun solution(a: Int, b: Int): Int = if("$a$b".toInt() >= "$b$a".toInt()) "$a$b".toInt() else "$b$a".toInt()
}

아 나도 $ 쓸 생각은 했는데, 활용을 못했다.
하지만 이번 기회에 toString()을 알게되었으니 오케이..^^

profile
아 왜 안돼

0개의 댓글