배열12 벡터에서 음수 인덱스도 접근은 가능하다 기본적으로 음수 인덱스는 벡터 앞의 부분을 가리킨다 인덱스 0으로부터 인덱스 번호*자료형 크기 만큼의 앞의 메모리를 주소값으로 가지고 값으로 쓰레기값을 가지고 있다 쓰레기 값을 가지지만 더하기 빼기 등등 요소의 기본적인 연산은 가능하다 하지만 쓰레기값을 가지고 다루는 것이기에 값은 계산해도 쓸수가 없다 초기 값이 쓰레기 값이므로... 하지만 그 음수 인덱스를 초기화한다면, 그 음수 주소값이 가리키는 값은 우리가 초기화한 값을 가리켜서 실제로 계산이 가능하고 원하는 대로 사용이 가능하다 예를 들어 인덱스 0 -1 에 접근해서 그 값을 ++하는 코드가 있다면, -1인덱스의 값을 따로 a[-1]=4 처럼 초기화했다면 인덱스 -1에도 연산이 적용 될 것이고, 초기화 하지 않았으면 쓰레기값++ 이니 의미없는 값은.. 2022. 6. 22. [프로그래머스 1 / c++] 체육복 그리디 알고리즘을 이용하는 문제이다 탐욕이라는 말처럼 가장 큰것들을 골라서, 가장 작은 것들을 골라서, 가장 빨리 끝나거나 가장 오래 걸리는 것을 골라서 이게 좋아보이네! 하고 선택해서 풀어나가는 것을 그리디 알고리즘이라고 한다 가장 큰 수 들을 우선 선택하여 최소한의 개수로 목표 수를 만들기 낼 수 있는 것 중 하나씩 고를때 최대값들만 골라서 최대값 만들기 가장 빨리 끝나는 수업 순으로 나열하여 수강 수를 최대로 하기 벌금이 다른 여러명이 벌금을 나눠 낼때 벌금이 작은 사람들 순으로 나열하여 총 벌금을 최소로 하기 등등이 모두 그리디 알고리즘의 예시라고 한다 정말 가장 큰거! 가장 작은거! 가장 빨리 끝나는거! 가장 오래 걸리는거! 처럼 욕심부리는 것 같긴하다 처음 풀때 같거나 옆에 있음 인덱스를 양쪽.. 2022. 6. 20. [c++] 배열 한번에 초기화 하는법, fill 배열 전체의 요소를 모두 0으로 초기화 할때는 아래 3가지 방법이 있다 arr[100] = {} arr[100] = {0} // 0의 경우만 전체 0으로 초기화가 적용된다. {-1} 의 경우 첫 요소만 -1 로 입력 되고 나머지는 0으로 된다 arr[100] = {0, } 위의 두번째와 마찬가지로, {} 안에 0 외에 {3}과 같이 다른 수를 넣으면 첫 요소만 그 수의 값을 가지고, 나머지 요소는 0이 된다. 또한 arr[100] = {3, 4} 라고 입력 시, arr[0]=3, arr[1]=4 로 들어가고 입력안한 인덱스 2 이상은 모두 0으로 초기화된다 지역변수로 배열을 선언할 경우 항상 직접 초기화를 해줘야 한다 전역변수는 따로 초기화를 하지 않아도 배열 전체가 0으로 초기화 된다 fill 함수를 .. 2022. 6. 15. c++ 배열을 인자로 받는 함수는 함수의 크기를 인자로 같이 받아야한다 int odap(int arr[]) { } 만으로는 배열의 크기를 알 수 없으므로 배열을 활용할 수 없다 함수내의 자원만으로 받은 배열의 크기를 구하는 방법은 없다 배열을 받는게 아니라 그 배열의 포인터로 인자를 받기 때문이다 포인터는 시작 주소만 있고 데이터(배열)의 끝을 모르므로, c++ 에서 함수 작성시, 배열을 인자로 받을때는 아래와 같이 사용하여 int odap(int arr[], int size) 꼭 배열의 크기을 함께 입력 받도록 하자 몇시간을 해도 안됐었는데... 이런 이유였다니... 2022. 6. 13. 이전 1 2 3 다음