본문 바로가기

Array2

너무 큰 크기의 배열이 선언되면 실행되지 않는다 아래의 문제에서 https://www.acmicpc.net/problem/10816 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 카드의 풀을 배열로 선언해서 카운트 하려고 하면, 배열의 크기가 1천만이 된다 1천만의 크기를 가진 배열을 선언해서 실행해보니 예상치 못한 에러로 종료가 되었다 혹시나 해서 배열의 크기를 10만으로 줄이니 이번엔 또 잘 돌아간다 찾아보니 배열의 크기가 너무 크면 컴파일러가 프로그램의 실행을 막는다고 한다 이유는 몇가지가 있지만 결국 성능상 효율 문.. 2022. 8. 5.
배열 제어 함수 fill() : 특정 위치의 배열을 초기화한다 fill(시작위치, 끝나는 위치, 초기화 값) // 끝나는 위치 = 마지막 요소 뒤의 위치 memset() : 배열 전체를 초기화 한다 memset(초기화 대상 배열, 초기화 값, 배열의 크기) memcpy() : 배열의 값을 다른 위치의 메모리에 복사한다 (=배열 값을 다른 배열에 복사) 배열의 값을 수정 시 원본을 온전히 남기고 싶을때, 배열 temp 에 원본 배열 a를 복사하면 a를 수정해도, temp 에 담은 a의 데이터를 복사해와서 다시 a를 만들어 복구할 수 있다 memcpy(붙여넣을 곳의 배열명, 복사할 배열명, sizeof(복사할 배열명) // a를 수정하는 로직을 구현 후, 다시 a를 원상복귀 할때 아래와 같이 사용한다 memcpy(temp,.. 2022. 6. 8.