https://www.acmicpc.net/problem/11720
11720번: 숫자의 합
첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다.
www.acmicpc.net
구현 방법
charAt()
- 해당 문자의 아스키코드 값 반환
- 해당 문자 - 48 / 해당 문자 - '0' : 이렇게 해야 입력 받은 값 그대로 사용 가능
getBytes()
1. 정의
- String을 하나의 byte 배열로 변환해주는 메소드
2. 특징
- java.lang.String 패키지에 있는 메소드 ➡ import문 불필요
- 해당 문자 - 48 / 해당 문자 - '0' : 이렇게 처리해야 아스키코드값 ➡ 입력 받은 값 그대로 사용 가능
풀이
1. Scanner + charAt()
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int N = in.nextInt(); //첫 번째 줄 값
String a = in.next(); //두 번째 줄 값 - 문자열로 입력 받기
in.close();
int sum = 0;
for(int i = 0; i < N; i++) {
//charAt(): 해당 문자의 아스키코드값 반환
sum += a.charAt(i) - '0'; //= a.charAt(i) - 48
//- '0' or - 48 : 아스키코드값 ➡ 입력 받은 값으로 변환
}
System.out.print(sum);
}
}
2. BufferedReader + getBytes()
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
br.readLine(); //N: 입력만 받기
int sum = 0;
//getBytes(): String을 하나의 byte 배열로 변환해주는 메소드
for(byte value : br.readLine().getBytes()) {
sum += (value - '0'); //= (value - 48)
//- '0' or - 48 : 아스키코드값 ➡ 입력 받은 값으로 변환
}
System.out.print(sum);
}
}
성능
- BufferedReader > Scanner
'Algorithm > Baekjoon' 카테고리의 다른 글
[백준] 2675번 : 문자열 반복 - Java (0) | 2022.03.18 |
---|---|
[백준] 10809번 : 알파벳 찾기 (0) | 2022.03.16 |
[백준] 11654번 : 아스키 코드 - Java (0) | 2022.03.16 |
[백준] 1065번 : 한수 - Java (0) | 2022.03.15 |
[백준] 4673번 : 셀프 넘버 - Java (0) | 2022.03.14 |
댓글