코드스테이츠 백엔드 8일차 회고록
배운점
1. 배열
- 같은 타입의 변수들로 이루어진 유한 집합
- 배열은 배열의 요소(element)와 위치를 가리키는 숫자(index)로 이루어져 있다
- 배열에 값을 저장하면 메모리 공간 상 물리적 값들이 모여있다
1차원 배열
int[] arr = new int[10]; // 배열의 크기가 10인 1차원 배열 arr
- 배열의 타입과 길이는 변경 가능하다
- arr은 배열의 맨 첫번째 요소의 주소값을 가리킨다
arr[0], arr[2] ..으로 값에 접근한다arr.length매소드로 배열의 길이를 받을 수 있다
2차원 배열
int[][] arr = new int[][]
- 2차원 배열은 1차원 배열 두개가 중첩 된 것이다.
- 가변배열로 사용가능하다(마지막 차수 길이 선언 생략 가능)
- 그래프 알고리즘을 풀 때 많이 사용된다
배열 탐색 방법
for(int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
- for문을 이용한 배열 탐색
int i = 0;
while(arr.length > i) {
System.out.println(arr[i++])
}
- while문을 이용한 배열 탐색
for(int element : arr) {
System.out.println(element);
}
- for-Each문을 이용한 배열 탐색
- 값을 불러오기만 할 뿐 수정할 수 없다
- while문은 조건식이 true일 경우 무한히 반복한다
- 정해진 횟수가 없을 때 사용하기 좋다
- while문을 탈출하기 위한 코드를 꼭 작성해야한다
응용 문제
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class fibonacci_Function {
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
int T = Integer.parseInt(bf.readLine());
int[] dp = new int[41];
dp[0] = 0;
dp[1] = 1;
for(int i = 2; i < 41; i++) {
dp[i] = dp[i-1] + dp[i-2];
}
for(int i = 0; i < T; i++) {
int N = Integer.parseInt(bf.readLine());
if(N == 0) System.out.println(dp[1]+" "+dp[0]);
else System.out.println(dp[N-1]+" "+dp[N]);
}
}
}
다이나믹 프로그래밍 알고리즘 백준_피보나치 함수
오늘 풀었던 피보나치 함수 문제의 연장선상이다
느낀점
오늘은 배열에 대해 배워보았다!!
자료구조 알고리즘을 공부 할 때는 배열보다 다른 자료구조를
많이 사용했어서 오늘 여러 함수 없이 문제를 진행하는데 조금 어려움이 있었다
여러 개발자들이 미리 만들어 놓은 함수에 압도적인 감사를,,,,!!!
오늘을 마지막으로 자바의 기초문법은 끝나게 되었다
내일부터 객체지향 프로그래밍을 배우는데 자바에서 손 뗀지 오래돼서
사실 잘 기억이 안난다,,,,,ㅋㅌㅋㅋㅋㅋㅋ
새내기 시절 때 머리 엄청 싸메여가며 고통받았던 것 같은데
통달했을 때는 이것저것 만드는 재미가 있었던 것으로 기억한다!!
다시 배우는 입장이니까 빠르게 이해 할 수 있지 않을까 생각한다!!
블로깅 챌린지가 얼마 남지 않았다!! 좀만 더 고생하자!
댓글남기기