배열은 메모리의 연속공간에 값이 채워져 있는 형태의 자료구조이다.
선언한 자료형의 값만 저장할 수 있다.
리스트는 값과 포인터를 묶은 노드라는 것을 포인터로 연결한 자료구조이다.
※ 노드: 컴퓨터 과학에서 값, 포인터를 쌍으로 갖는 기초단위
간단한 리스트와 배열관련 문제를 알아본다.
백준 11720문제 숫자의 합 구하기
여기서 첫째 줄의 입력되는 값은
더 해야 할 숫자의 갯수를 나타내는 것이고
두번째 줄에 나오는 숫자는 연속된 붙여진 숫자가 나오게된다.
여기서 그 붙여진 숫자를 하나하나 더한 값을 구해야하는 것이다
이 문제는 String은 char의 배열 형태라는 것을 알아야 풀 수있다.
그렇기 때문에 String sNum 이라는 변수를 통해
2번째줄을 String형으로 저장을 하고
이 String 변수를 char[] 배열을 통해
다시 각각 넣으면서 더하면 되는 문제이다.
코드로 알아보겠습니다.
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 sNum = br.readLine();
char[] cNum = sNum.toCharArray();
int sum = 0;
for (int i = 0; i < cNum.length; i++){
sum += cNum[i] - '0';
}
System.out.println(sum);
}
}
N이라는 몇개를 더할 지 넣는 변수 값을 지정해주고
sNum에 다음 줄에 올 숫자들을 문자열로 넣어줍니다.
cNum이라는 문자형 배열을 만들어 그 크기는
sNum의 길이만큼 만들어 준후
sum이라는 마지막 결과값 int형의 변수를 0으로 초기화해주고
for문을 돌리면서 sum에 넣으면서 더해준 후
for문 밖에서 print해주면 되는 문제입니다.