[BOJ] 11720번 숫자의 합 - JAVA

최영환·2022년 9월 26일
0

BaekJoon

목록 보기
16/87
post-thumbnail
## Java 풀이 시 유의사항 ##
클래스명은 Main 으로 작성해야함!

💡 문제

💬 입출력 예시

📌 풀이(소스코드)

// 풀이 1
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());  // n
        String str = br.readLine();
        int result = 0;
        for (int i = 0; i < n; i++) {
            result += str.charAt(i) - '0';
        }
        System.out.println(result);
        br.close();
    }
}

// 풀이 2
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));
        br.readLine();
        int result = 0;

        for (byte val : br.readLine().getBytes()) {
            result += (val - '0');
        }

        System.out.println(result);
        br.close();
    }
}

📄 해설

  • 입력 받은 문자열의 각 문자에서 0 의 아스키코드 값을 빼서 모두 더해주면 되는 문제
  • charAt() 메소드를 쓰는 풀이와 getBytes() 메소드를 쓰는 풀이가 있는데, 두 풀이 모두 알고리즘은 똑같으며, 성능면에서도 차이는 존재하지 않음(풀이 1 이 약 100KB 덜 소모하였음)
profile
조금 느릴게요~

0개의 댓글