▶ 문제
https://www.acmicpc.net/problem/11720
11720번: 숫자의 합
첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다.
www.acmicpc.net
▶ 설명
연속으로 입력된 숫자들을 모두 더하는 문제이다.
▶ 문제 풀이
🌱 풀이1. read( ) 사용
입력받은 값을 정수로 형변환 한 뒤 10으로 나눈 나머지를 구하고,
10으로 나누는 것을 문자열이 끝날때까지 반복하여
나머지끼리 합하도록 하는 코드를 먼저 구상했었다.
그런데 제출할 때 런타임 에러 뜨는 문제가 생겼다.
더보기
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();
String s = br.readLine();
int num = Integer.parseInt(s);
int sum = 0;
for (int i = 0; i < s.length(); i++) {
sum += num % 10;
num /= 10;
}
System.out.println(sum);
}
}
read() 메소드를 이용해서 한 글자씩 입력을 받는대로 플러스 연산을 하는 반복문 코드를 짜니 에러가 없었다.
read()가 반환하는 것은 char 형이였기 때문에 아스키코드에 따라서 '0' 혹은 48을 빼주도록 하였다.
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());
int sum = 0;
for(int i=0; i<n; i++) {
sum += br.read() -'0';
}
System.out.println(sum);
}
}
🌱 풀이2. charAt( ) 사용
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
//charAt() 사용
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());
int sum = 0;
String get = br.readLine();
for(int i=0; i<n; i++) {
sum += get.charAt(i) - '0';
}
System.out.println(sum);
}
}
🌱 풀이3. split ("")사용
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());
int sum = 0;
String[] get = br.readLine().split("");
for (int i=0; i<n; i++) {
sum += Integer.parseInt(get[i]);
}
System.out.println(sum);
}
}
더보기
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;
String[] get = br.readLine().split("");
for (String var : get) {
sum += Integer.parseInt(var);
}
System.out.println(sum);
}
}
🌱 풀이4. substring( ) 사용
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());
int sum=0;
String input = br.readLine();
for(int i=0; i<n; i++) {
sum += Integer.parseInt(input.substring(i, i+1));
}
System.out.println(sum);
}
}
🌱 풀이5. 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;
byte[] get = br.readLine().getBytes();
for (byte value : get) {
sum += (value - '0');
}
System.out.println(sum);
}
}
▶ Log
728x90
반응형
'백준 알고리즘 > 문자열' 카테고리의 다른 글
[JAVA 자바] 백준 1152번 : 단어의 개수 (0) | 2022.06.05 |
---|---|
[JAVA 자바] 백준 1157번 : 단어 공부 (0) | 2022.06.04 |
[JAVA 자바] 백준 2675번 : 문자열 반복 (0) | 2022.06.03 |
[JAVA 자바] 백준 10809번 : 알파벳 찾기 (0) | 2022.06.02 |
[JAVA 자바] 백준 11654번 : 아스키코드 (0) | 2022.05.31 |