코틀린을 새로 배우게 되면서 백준 문제를 푸는데..
원래 자바로 백준 문제를 풀때 테스트케이스를
메모장인 txt파일로 저장해서 돌려서 풀었었다.
이런식으로 해서 풀면 코드를 돌릴 때 마다 일일히 입력할 필요가 없기 때문에 굉장히 유용하다.
자바에서는 이코드를 그냥 눈감고도 적을 정도로 외워서 사용했는데,
코틀린에서 문제를 풀때도 당연히 이 방법을 사용해야 겠거니 싶었다.
그래서 이 글을 적어본다
아직 저는 코틀린에서 걸음마도 떼지 못한 영유아라는 점을 이해바랍니다.
혹시 더 좋은 점을 알고계시거나 지적할 부분이 있다면 꼭 알려주세요!
먼저 저는 위 사진처럼 경로를 만들었습니다.
테스트케이스 txt파일은 아래와 같은 경로를 만들었고,
src > main > kotlin > res > input_bj_1000.txt
제가 돌릴 코드인 test1.kt파일은
src > main > kotlin > test1.kt 로 만들었습니다.
이제 txt파일의 경로를 알아오면 되는데,
다른 분들은 다른 경로와 이름을 사용하실 수 있으니
경로를 가져오는 법을 알려드리겠습니다.
테스트케이스를 저장한 txt파일을 우클릭하시면 위와 같은 화면이 나옵니다.
빨간색으로 표시된 버튼을 클릭해주세요
클릭하면 해당 창이뜨고 Absolute Path라고 보이실 겁니다.
그 부분이 해당파일의 절대경로를 알려줍니다.
해당 부분을 클릭하시면 자동으로 경로가 복사가 된겁니다.
이제 경로는 알아왔고, 이부분을 path
라는 변수를 만들어서 옮겨줍니다.
var path = " 여기에 복붙!! "
이렇게 하면 경로가 담긴 path
변수가 만들어졌습니다.
이제 이 경로를 넣어주기만 하면됩니다.
이제 전체코드를 보시죠!!
import java.io.BufferedReader
import java.io.File
import java.util.*
fun main() {
var path = "경로 \\src\\main\\kotlin\\res\\input_bj_1000.txt"
var br = BufferedReader(File(path).bufferedReader())
var str = br.readLine();
var st = StringTokenizer(str);
print(st.nextToken().toInt() + st.nextToken().toInt())
}
경로앞에붙는 부분은 백슬래시입니다.
2개를 붙여주셔야 해요
위 사진 처럼이요!
이제 코드를 돌려보면 정상적으로 잘 동작합니다.
마지막으로 백준에 코드를 넣어서 결과를 제출할 때 주의할 점인데요.
저희의 경로 그대로넣으면 안되기 때문에 수정해주셔야 합니다.
import java.io.*
import java.util.*
fun main() {
var br = BufferedReader(InputStreamReader(System.`in`))
var str = br.readLine();
var st = StringTokenizer(str);
print(st.nextToken().toInt() + st.nextToken().toInt())
}
제출 하실때는 위와 같이 수정해서 내시면 됩니다.
path
는 제거하셔도 되고 안하셔도 됩니다.
하지만 br
인 BufferedReader는 뒤에 parameter를 꼭 수정해주셔야 합니다.!!