![[백준] 10950 - A + B - 3](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb3EYj0%2FbtsyEAm2usi%2FaMAKT5qA4tw93WN0VnmMUK%2Fimg.png)
• 문제

테스트 케이스 T를 받아 T의 값만큼 A+B의 값은 반복출력하는 문제이다.
• 풀이
아마 for문을 다룰 줄 아는 분들이라면 어렵지 않게 푸셨을거라 생각한다.
T만큼 반복해야하기때문에 먼저 T의 값을 입력받아야 한다.
입력받은 T값을 이용해 for문의 조건식을 작성해주면 된다.
조건식은
(int i=0; i<T; i++)와 같이 만들어주며
i는 0부터 T-1의 값만큼 반복한다는 의미이다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
for(int i=0; i<T; i++) {
int A = sc.nextInt();
int B =sc.nextInt();
System.out.println(A+B);
}
}
}
보통 처음 푸는 분들이라면 위와같이 풀었을거라 생각된다.
하지만 위와 같은 코드로 프로그램을 실행하면

입력 두 개를 받고 바로 합한 값을 출력하는 과정을 반복하게된다.
물론 위와 같이 문제를 풀고 제출하면 정답처리를 받을 수 있다.
하지만 우리가 원하는 출력결과는
T에 해당하는 수만큼 입력값을 받고 그 테스트케이스에 해당하는 값을 한 번에 출력하기를 원한다.
원하는 출력을 위해서 우리는 배열을 사용할 것이다.
먼저 사용하기 위한 배열변수 arr를 선언하고, T만큼의 길이로 초기화 해준다.
int arr[] = new int[T]
아래는 T값이 5일 때의 배열모습이다.
[0] [1] [2] [3] [4]
[0]...[5]의 숫자들은 배열의 인덱스 쉽게 생각해 배열의 방번호라고 생각하면된다.
인덱스는 0부터 시작하기때문에 만약 길이가 5인 배열을 생성했다면 인덱스는 0~4(n-1)까지이다.
배열의 인덱스는 현재 비어있는 상태이므로 이 안에 A+B의 결과값을 각각의 인덱스에 넣어줄 것이다.
그러기위해 for문을 사용한다.
for(int i=0; i<T; i++) {
int A = sc.nextInt();
int B = sc.nextInt();
arr[i] = A+B;
}
잘 살펴보면 인덱스의 값과 i의 값이 같다는 점을 알 수 있고, 우리는 이 점을 활용하여 arr[i] = A + B라는 코드를 만들어 배열을 초기화 할 수 있다.
이제 배열은 완성됐고 출력만 해주면된다.
출력방법 1
for(int i=0; i<arr.length; i++) {
System.out.println(arr[i]);
}
가장 일반적인 출력방법으로 i를 이용하여 arr의 인덱스의 값들을 출력해주는 것이다.
여기서 arr.length는 arr의 길이 즉, T가 5이면 5를 의미한다.
출력방법 2
for(int tmp : arr) {
System.out.println(tmp);
}
향상된 for문을 이용한 출력방법이다.
필자는 이 방법을 주로 이용한다.
tmp라는 변수를 만들어 arr의 인덱스를 돌면서 해당 인덱스의 값을 tmp에 저장한 뒤 실행문을 실행한 뒤, 다음 인덱스로 넘어가는 방식이다.
•마무리
배열의 인덱스는[0]부터 시작하며, 그렇기 때문에 배열 인덱스의 끝은 배열의 길이 - 1이다.
이것을 이용하면 배열의 길이를 몰르는 상태에서 마지막인덱스 값을 출력하려면 array[array.length - 1]을 하면 배열의 마지막 값을 알 수 있다.
종종 블로깅 할 때마다 말하지만 답이 정해진 코드는 없다고 생각한다.
거기다 우리는 아직 초보 코더이기때문에 본인이 편한대로 코드를 작성하되, 나중에 협업을 할 때는 다른 사람들이 나의 코드를 읽어야 하므로 가독성이 좋고, 유지보수가 편하게 천천히 코드를 깎아나아가면 된다고 생각한다.
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 25304 - 영수증 (0) | 2023.10.17 |
---|---|
[백준] 8393 - 합 (0) | 2023.10.17 |
[백준] 2739 - 구구단 (0) | 2023.10.17 |
[백준] 2480 - 주사위 세 개 (1) | 2023.10.17 |
[백준] 2525 - 오븐 시계 (1) | 2023.10.17 |
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!