아이스 아메리카노

이윤설·2024년 2월 2일

https://school.programmers.co.kr/learn/courses/30/lessons/120819?language=java

class Solution {
    public int[] solution(int money) {
        int coffeePrice = 5500;
        int count;
        int change;
        int[] answer = new int[2];
        
        count = (money / coffeePrice);
        change = money - (coffeePrice * count);
        
        answer[0] = count;
        answer[1] = change;
        
        
        return answer;
    }
}

배운점

1) 배열 선언 방법
자료형[] Array = new Array[길이];
int[] Array = new Array[5];

자동완성 없이 작성하려니까 생각이 안났다.
까먹지 말자~

2) new의 의미

new 키워드를 사용하여 배열을 만들면 메모리 상에 새로운 배열 객체가 동적으로 할당된다. 이때 할당된 메모리는 Heap 영역에 위치하게 된다.

자바에서 배열(Array)은 객체로 취급되며, new 연산자를 사용하여 배열을 생성할 때마다 해당 배열의 크기만큼의 메모리가 힙에 할당된다. 이렇게 동적으로 할당된 배열은 런타임 중에 크기를 변경할 수 없다.

또한 똑같은 이름의 배열을 new로 만들 수 없다. 자바에서 변수명은 유일해야하므로, 같은 이름의 배열이나 변수를 중복해서 선언할 수 없다.

3) 동적 할당 vs 정적 할당

정적으로 할당(Static Allocation):

  • 컴파일 시간에 메모리가 할당되며, 프로그램이 실행되기 전에 크기가 결정됨
  • 정적으로 할당된 메모리는 프로그램의 생명 주기 동안 일정함

동적으로 할당(Dynamic Allocation):

  • 런타임 시간에 메모리가 할당되며, 프로그램이 실행 중에 크기가 동적으로 결정됨
  • 동적으로 할당된 메모리는 프로그램이 실행 중일 때만 존재하며, 사용이 끝나면 명시적으로 해제해야 함

https://habitus92.tistory.com/13

모범답안

1) 변수 대신 배열의 인덱스를 넣으면 코드의 낭비를 줄일 수 있다.

profile
화려한 외면이 아닌 단단한 내면

0개의 댓글