Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 개발자
- SSR
- 자바
- 졸리다
- 예외 처리
- 다형성
- 인스턴스
- 보조 스트림
- 상속
- Java
- 코딩
- ArrayList
- 새벽공부
- 백엔드
- 변수
- 배열
- 바이트 단위 스트림
- 초보개발자
- FileInputStream
- 메서드
- try-catch
- 자료형
- 인터페이스
- MPA
- exception
- 문자 단위 스트림
- 코린이
- 파이팅
- throws
- node.js
Archives
- Today
- Total
SHUSTORY
[ 백준 ] 11720번 : 숫자의 합 본문
728x90
문제
풀이 1
Character.getNumericValue( )
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 nums = br.readLine();
int sum = 0;
for (int i = 0; i < N; i++) {
sum += Character.getNumericValue(nums.charAt(i));
}
System.out.println(sum);
}
}
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 nums = br.readLine();
int sum = 0;
for (int i = 0; i < N; i++) {
sum += Character.getNumericValue(nums.charAt(i));
}
System.out.println(sum);
}
}
- Character.getNumericValue( )
- 0 - 9 사이의 숫자로 표현된 문자 값을 정수로 반환한다.
- 만약 이외의 값일 경우는 음수 값을 반환한다.
풀이 2
charAt( )
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
String str = sc.next();
int sum = 0;
for (int i = 0; i < N; i++) {
sum += str.charAt(i)-'0';
}
System.out.println(sum);
sc.close();
}
}
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
String str = sc.next();
int sum = 0;
for (int i = 0; i < N; i++) {
sum += str.charAt(i)-'0';
}
System.out.println(sum);
sc.close();
}
}
- charAt( )
- 해당 문자의 아스키 코드 값을 반환하므로 반드시 -48 또는 -'0'을 해주어야 입력받은 숫자 값 그대로를 사용할 수 있다.
- 숫자 0의 아스키 코드 값은 48이다.
- 해당 문자의 아스키 코드 값을 반환하므로 반드시 -48 또는 -'0'을 해주어야 입력받은 숫자 값 그대로를 사용할 수 있다.
풀이 3
getBytes
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 sum = 0;
for (byte value : br.readLine().getBytes()) {
sum += (value - 48);
}
System.out.println(sum);
}
}
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 sum = 0;
for (byte value : br.readLine().getBytes()) {
sum += (value - 48);
}
System.out.println(sum);
}
}
- getBytes( )
- String 에 대하여 해당 문자열을 하나의 byte 배열 ( byte[ ] ) 로 변환해주는 메소드이다.
- UTF-16(유니코드) 인코딩으로 변경되는 값을 따르기 때문에 -48 또는 -'0'을 해주어 원하는 값을 사용할 수 있다.
- 유니코드 앞부분은 아스키코드와 호환되기 때문에 영어 문자, 숫자는 같다.
- 인코딩은 정보를 특정 규칙에 따라 변환하는 것을 의미하며, 유니코드 인코딩은 문자를 숫자로 매핑하는 방식을 정의한다.
- 참고로 위 코드에서는 처음 입력받은 값은 사용하지 않고 있다.
'코딩테스트 > JAVA' 카테고리의 다른 글
[백준] 10809번 : 알파벳 찾기 (1) | 2024.02.06 |
---|---|
[ 백준 ] 11654번 : 아스키 코드 (0) | 2024.01.29 |
[ 백준 ] 27866번 : 문자와 문자열 (0) | 2024.01.23 |
[ 백준 ] 3052번 : 나머지 (0) | 2024.01.16 |
[ 백준 ] 2562번 : 최댓값 (1) | 2023.12.04 |