세상을 더 좋게

[백준] 2588 '곱셈' 파이썬(Python), 코틀린(Kotlin) 본문

Algorithm

[백준] 2588 '곱셈' 파이썬(Python), 코틀린(Kotlin)

나는SOU 2022. 3. 17. 13:46

https://www.acmicpc.net/problem/2588

 

2588번: 곱셈

첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다.

www.acmicpc.net

파이썬

위의 숫자는 int로 입력 받고, b는 그대로 String으로 받는다. 그래서 index로 b의 숫자를 나누어 계산을 한 것을 변수에 담아 마지막 print 함수에서 출력하도록 하였다. 반복되기에 for문을 사용하여 줄여볼까도 생각했지만, 코드를 읽는 사람으로 하여금 더 복잡하게 보일 수도 있다는 생각을 하게 되었다.

a = int(input())
b = input()

aXb2 = a*int(b[2])
aXb1 = a*int(b[1])
aXb0 = a*int(b[0])
aXb = a*int(b)
print(aXb2, aXb1, aXb0, aXb, sep='\n')

 

코틀린

파이썬과는 다르게 for문을 사용하여 조금 더 간략하게 표현해보았다.  b[i]는 형식이 char로 받기 때문에 toInt()가 아니라 digitToInt()를 사용하여 변환시켜주었다. 스트링을 인덱스로 꺼내면 char로 받는 것으로 보여진다. 위 파이썬보다는 다소 코드가 깔끔해져서 보기가 편하다.

fun main() {
    val a = readLine()!!.toInt()
    val b = readLine()!!
    
    for(i in 2 downTo 0) {
        println(a * b[i].digitToInt())
    }
    println(a * b.toInt())
}