백준을 파이썬으로는 풀어봤는데 Java로는 처음 푸는 거라서 이렇게 고려해야할 사항이 많은지 몰랐다.
고려하거나 주의해야할 점에 대해서는 이 블로그에서 잘 정리해주셨다.
평상 시에는 BufferedReader, BufferedWriter를 쓸 일이 없어서 그런지 너무나도 낯설었다.
bw.write(i+"\n")
or bw.write(i+"")
-> "\n"
나 ""
를 추가해서 아스키 코드로 출력되는 것을 막는다.
bw.write(String.valueOf(i))
;
-> valueOf()를 사용해서 int형으로 출력해준다.
import java.io.*;
public class Main{
public static void main(String args[]) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int n = Integer.parseInt(br.readLine());
String[] num = br.readLine().split("");
int result = 0;
for(String s: num){
result+= Integer.parseInt(s);
}
bw.write(result+"");
bw.close();
}
}
항상 파이썬으로만 풀다가, 자바로 푸니까 작성할 것이 너무 많다는 것을 느꼈다.
BufferedWriter 대신에 System.out.println
로 수정해봤는데 간단한 문제라서 그런지 성능 상으로 큰 차이는 없었다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main{
public static void main(String args[]) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
String[] num = br.readLine().split("");
int result = 0;
for(String s: num){
result+= Integer.parseInt(s);
}
System.out.println(result);
}
}
[참고]
자바로 백준 풀 때의 팁 및 주의점
https://m.blog.naver.com/ka28/221850826909
BufferedReader/BufferedWriter
https://zz132456zz.tistory.com/17