목록배열 (7)
여행을 개발하다

안녕하세요! 오늘 포스팅 할 내용은 'ArrayList'입니다. 배열의 길이는 정해져 있기도 하지만, 때에 따라서 유연하게 늘였다 줄였다 할 필요가 있습니다. 데이터가 추가되고 빠질 때마다 적당하게 메모리가 할당이 되어야 하기 때문이죠. 실제 실무에서도 불필요한 메모리 할당으로 메모리 누수 현상을 방지하기 위해, 배열의 길이는 대부분 정하지 않고 사용한다고 합니다. Java는 이러한 상황에서 배열을 동적 할당하기 위해, ArrayList라는 클래스를 활용합니다. 그럼 ArrayList를 어떻게 활용하는지, 지금부터 살펴보겠습니다. * 왜 동적 할당이 필요할까...? 본격적인 설명에 앞서, 왜 배열의 동적 할당이 필요한지 예제를 통해 살펴보겠습니다. 1과 2를 더한 값인 3을 출력하는 sum(arg)라는 ..

안녕하세요!! 오늘 포스팅할 내용은 2차원 배열의 3번째 응용 예제, '달팽이 배열 만들기'입니다. 달팽이 배열은 정보처리기사 알고리즘 파트 등에서 빈번하게 출제되는 유형입니다. 그럼 배열은 어떻게 구성되어 있는지 살펴보고, C++ 알고리즘으로 구현해보도록 하겠습니다. 1. 달팽이 배열 말 그대로 달팽이 집 모양처럼 생긴 배열을 의미합니다. 여기서 숫자의 배열 형태를 보시면, 안쪽으로 휘말려 들어가는 모양을 하고 있습니다. 그런데 블록을 잡고 자세히 보시면, 5, 4, 4, 3, 3, 2, 2, 1, 1... 의 방식으로 반복되며 채워지는 걸 확인하실 수 있습니다. 그렇다면 이러한 규칙성에 기반해서 코드를 짜보도록 하겠습니다. 2. C++로 달팽이 배열 만들기 2-1. 정적 할당으로 만들기 항상 그래왔던..

안녕하세요! 오늘은 2차원 배열의 응용 예제로, 'ㄹ' 자 모양의 배열을 만들어보겠습니다. 제가 그 많고 많은 예제 중에 'ㄹ'자 배열을 선택했냐면요... 지난달 말에 치룬 정보처리기사 실기 시험에서 나왔기 때문이에요. 시험지에서 직접 봐서 그런지, 한 번쯤 직접 구현해보고 싶더라구요!! 마침 2차원 배열 이야기를 하고 있던 중이어서, 타이밍도 좋았습니다! 1. 'ㄹ'자 배열 'ㄹ'자 배열은 다음과 같은 배열을 말하는데요. 자세히 보시면, 숫자가 증가하는 방향이 'ㄹ'자 형태를 띕니다. 2. C++로 'ㄹ'자 배열 구현하기 그럼 C++로 'ㄹ' 자 배열을 구현해보도록 하되, 한 번은 2차원 배열의 정적 할당으로, 한 번은 동적 할당으로 해보겠습니다. 2-1. 정적 할당으로 구현하기 임의로, 5*5의 정적..

안녕하세요! 오늘 포스팅 할 내용은 '2차원 배열의 정적할당'입니다. 지난 시간에는 인수들을 단순 열거하는 1차원 배열에 대해서 이야기했습니다. 오늘은 하나의 배열이 여러 개의 배열을 인수로 갖고 있는, 즉 가로와 세로축이 있는 2차원 배열의 정적 할당은 어떻게 이루어지는지 알아보겠습니다. 1. 2차원 정적 배열의 선언 2차원 배열은 '배열들의 배열'이라고 생각하시면 이해하기 쉽습니다. 즉, 배열의 인수가 '배열'이 되는 것이지요. 1차원 정적 배열을 선언했던 것처럼, 배열의 크기를 적어주기만 하면 됩니다. 다만 행과 열의 크기가 모두 지정되어야 한다는 점을 주의하셔야 합니다. 예를 들어, 5행 5열의 2차원 배열을 선언하기 위해서는 다음과 같이 코딩하면 되겠습니다. '자료형 배열명[행의 크기][열의 크..

안녕하세요! 지난 시간에 1차원 배열의 동적 할당에 대해 알아보았습니다. 그럼 오늘은 지난 시간에 포스팅했던 내용을 응용하여, 학생들의 점수 합계, 평균, 표준편차와 분산을 구하는 간단한 프로그램을 짜보도록 하겠습니다. 물론 학생들의 수가 정해져있다면 정적 할당으로 짜도 무관합니다 : ) 지난번과 동일하게 몇 명의 학생들의 점수를 입력 받을지를 사용자에게 물어보고, 필요한 만큼 배열의 크기를 할당하겠습니다. 합계를 구하기 위해 정수형 변수 sum을 선언하고, 0으로 초기화하겠습니다. 그리고 배열의 각 요소를 더하여 합계를 계산합니다. 그 다음에는 평균을 계산해야 하는데, 나눗셈을 하다보면 소수점까지 구해질 여지가 다분합니다. 그래서 평균을 저장할 변수 var, 분산을 저장할 변수 var, 표준편차를 구할..

안녕하세요!! 오늘 포스팅할 내용은 1차원 배열의 동적할당(Dynamic Allocation)입니다. 지난 포스팅에서는 1차원 배열의 정적 할당에 대해서 알아보았는데요. 정적 할당은 배열의 크기, 즉 메모리의 크기를 미리 정하고 사용하는 것이라고 설명드렸습니다. 하지만 프로그래밍에서는 배열의 크기를 정해서 쓰기보다는, 그 때 그 때 유동적으로 변동에서 사용해야 할 경우가 더 많겠죠? 이럴 때 필요한 것이 배열의 동적 할당입니다. 즉, 정적, 동적 할당의 차이는 프로그램의 시작 전에 메모리를 할당하느냐, 혹은 프로그램을 사용하면서 메모리를 할당하느냐로 정리해볼 수 있겠습니다. 1. 1차원 배열의 동적 할당-1 (new 사용하기) 1차원 배열의 동적 할당은 사용자가 얼마만큼의 메모리를 필요로 하는가에 따라 ..

안녕하세요! 오늘 포스팅 할 내용은 Array, 배열입니다. 배열이란, 말 그대로 여러 개의 원소의 묶음을 의미하는데요. 어떤 프로그래밍 언어든지 매우 중요하게 다루어지는 부분입니다. 그 이유는 배열을 사용해서, 동일한 타입의 변수들을 효율적으로 관리 및 사용할 수 있기 때문입니다. (참고로 C++에서의 배열은 Java, Python 등 기타 언어에서도 매우 유사하게 사용됩니다.) 그 중에서도 오늘은 1차원 배열, 그리고 1차원 배열을 정적할당하는 법에 대해 알아보겠습니다. 1. 배열(Array)이란? - 동일한 타입의 변수들을 한데 묶어 놓은 것. - 하나의 배열은 0개 이상의 원소들로 구성되어 있다. - 각각의 원소들은 각각 고유의 인덱스(index)를 가지며, 배열명과 인덱스로 접근 및 사용이 가능..