[백준] 11720번

박채은·2023년 4월 17일
0

코딩테스트

목록 보기
18/52

문제

백준을 파이썬으로는 풀어봤는데 Java로는 처음 푸는 거라서 이렇게 고려해야할 사항이 많은지 몰랐다.
고려하거나 주의해야할 점에 대해서는 이 블로그에서 잘 정리해주셨다.

평상 시에는 BufferedReader, BufferedWriter를 쓸 일이 없어서 그런지 너무나도 낯설었다.

  • Scanner 대신에 BufferedReader 사용
  • System.out.println() 대신에 BufferedWriter 사용

하지만 BufferedWriter도 주의할 점이 있다. BufferedWriter로 int 값을 출력하면 아스키 코드로 출력이 된다는 것이다.
  1. bw.write(i+"\n") or bw.write(i+"")
    -> "\n"""를 추가해서 아스키 코드로 출력되는 것을 막는다.

  2. 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

0개의 댓글