매일 백준의 알고리즘 문제를 풀며 3문제씩 풀며
한 언어를 마스터 할 것을 목표로 이 글을 작성할 예정입니다.
https://www.acmicpc.net/problem/2743
문자열을 먼저 받아주고
문자열 길이를 알기 위해 내부 함수 length를 쓰기 위해서
문자열 뒤에.let확장 함수를 쓰고 그것의it.length를 출력하도록 만들었다.
fun main() {
val str = readlnOrNull()
str?.let { println(it.length) }
}
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]}")
}
}
https://www.acmicpc.net/problem/11654
이 문제는 받은 문자열을 아스키코드로 바꿔주는 코드인데
처음에는.toInt()로 생각했다가 코틀린에서 아스키 코드를 바꿔주는
.code가 있길래 사용해 보았다.
.first()를 사용한 이유는 바꿀 문자열을 받아온다는 것이고
그것을 아스키 코드로 바꿔 달라는 코드이다.
fun main() {
println("${readln().first().code}")
}
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)
}
문자열을 잘 다뤄야 진정으로 코드와 가까워 지는 것인데
코틀린의 새로운 문자열 다루는 법을 배워가는 것 같다.
앞으로도 열심히 공부해야겠다. 👊