[Kotlin]PS_6

Hood·2024년 8월 7일

매일PS

목록 보기
6/11
post-thumbnail

✍   Kotlin을 사용한 백준 알고리즘 문제풀이

매일 백준의 알고리즘 문제를 풀며 3문제씩 풀며
한 언어를 마스터 할 것을 목표로 이 글을 작성할 예정입니다.


🔎 2743번

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

문자열을 먼저 받아주고
문자열 길이를 알기 위해 내부 함수 length를 쓰기 위해서
문자열 뒤에 .let 확장 함수를 쓰고 그것의 it.length 를 출력하도록 만들었다.

fun main() {
    val str = readlnOrNull()
    str?.let { println(it.length) }
}

🔎 9086번

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

이 문제는 일단 case 몇 개를 가져올 것인지 받고
반복문을 통해 str 을 받고 그것의 첫 번째 문자열과 끝 문자열을 출력하도록 만들어 주었다.
나는 파이썬 처럼 문자열 인덱스에 -1을 넣으면 마지막 문자열을 줄 거 같았는데
코틀린에서는 지원이 안되는 것을 알 수 있었다. 대신 .lastIndex를 사용해주었다.

import java.util.Scanner

fun main() {
    val sc = Scanner(System.`in`)
    val case = sc.nextInt()
    for (x in 0 until case){
        val str = sc.next()
        println("${str[0]}${str[str.lastIndex]}")
    }
}

🔎 11654번

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

이 문제는 받은 문자열을 아스키코드로 바꿔주는 코드인데
처음에는 .toInt() 로 생각했다가 코틀린에서 아스키 코드를 바꿔주는
.code 가 있길래 사용해 보았다.
.first()를 사용한 이유는 바꿀 문자열을 받아온다는 것이고
그것을 아스키 코드로 바꿔 달라는 코드이다.

fun main() {
    println("${readln().first().code}")
}

🔎 11720번

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

이 문제는 코틀린의 아스키코드를 이용하는 방법이다.
num[x]-0 을 해준다는 것은 1번째 문자열의 아스키코드를 인트형으로 바꿔준다는 말로
0번째 배열의 문자열이 아스키코드가 인트형으로 바뀌어서 자동으로 1을 출력해줄 것이다.
그래서 total에 더해주면 끝이다.

import java.util.Scanner

fun main() {
    val sc = Scanner(System.`in`)
    val n = sc.nextInt()
    val num = sc.next()
    var total = 0

    for (x in 0 until n){
        total += num[x] - '0'
    }
    println(total)
}

📌결론

문자열을 잘 다뤄야 진정으로 코드와 가까워 지는 것인데
코틀린의 새로운 문자열 다루는 법을 배워가는 것 같다.
앞으로도 열심히 공부해야겠다. 👊

profile
달을 향해 쏴라, 빗나가도 별이 될 테니 👊

0개의 댓글