렝무식
[백준 11720번] 숫자의 합 (JAVA) 본문
BOJ - [11720] 숫자의 합
🖍 숫자의 개수를 입력 받은 후 개수 만큼의 숫자를 공백없이 입력받아 모두 더한 값을 출력하는 문제
(link) 11720 숫자의 합
[풀이 과정]
숫자를 "공백 없이" 받아온다는 것이 조건.
즉, 개수 n개를 입력 받으면 그 후에 숫자를 해당 개수 만큼 입력 받는게 아니라, 한번에 n자리수 숫자 만큼 받는 것이다.
처음에 문제를 이해 못했음.
그 후에도 뭐가 문제인지 몰라서 문제를 다시 봤는데 입력 형태가 좀 이상하더라..
입력 형태를 보면 숫자들이 붙어있다... '저러면 숫자 하나로 인식될텐데?' 라는 생각이 퍼뜩 들었다.
따라서 숫자를 따로따로 띄워놓는게 이 문제가 의도한 것임.
더 좋은 방법이 있을 것 같기도 한데, 일단 생각나는 방법은 문자열로 입력받은 후 char 데이터로 변환하여 아스키 코드 값으로 연산하는 방법이었다.
말그대로 0의 아스키 코드는 48이기 때문에, 0이라는 문자를 int 데이터에 넣으면 48이 된다. 이때 48만큼 뺄셈 연산을 해주면 원하는 정수 값을 얻을 수 있다.
[Pseudocode]
1. 숫자 개수 입력받기
2. 숫자를 String 데이터로 입력 받기
3. for 개수만큼 반복
4. 한 글자(숫자)씩 int 데이터로 변환(아스키 코드 숫자로 연산)
5. 변환 후 합산
[Code]
import java.util.*;
/**
* 백준 11720번
* 숫자의 합
* 분류: 수학, 구현, 문자열
*/
public class Problem2 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int sum = 0;
int n = input.nextInt();
String s = input.next(); // 숫자를 문자열로 우선 입력 받음
for(int i=0 ; i<n ; i++) {
// char 데이터로 변환 후 아스키 코드 값으로 연산 (0의 아스키 코드는 48)
sum += s.charAt(i) - 48;
}
System.out.println(sum);
input.close();
}
}
[Result]
(2021.07.13 풀이분)
백준 문제 푸는게 아직 어색했을 때라 에러가 많다.
근데 지금은 그냥 '틀렸습니다' 가 많다..
'Algorithm > Baekjoon' 카테고리의 다른 글
[백준 2869번] 달팽이는 올라가고 싶다 (JAVA) (0) | 2023.01.12 |
---|---|
[백준 1316번] 그룹 단어 체커 (JAVA) (0) | 2023.01.12 |
[백준 2775번] 부녀회장이 될테야 (JAVA) (0) | 2023.01.12 |
[백준 1157번] 단어 공부 (JAVA) (0) | 2023.01.12 |
[백준 11654번] 아스키 코드 (JAVA) (0) | 2023.01.12 |