Basic of Array and List

Array(๋ฐฐ์—ด) - array[ ]

๋ฉ”๋ชจ๋ฆฌ์˜ ์—ฐ์† ๊ณต๊ฐ„์— ๊ฐ’์ด ์ฑ„์›Œ์ ธ ์žˆ๋Š” ํ˜•ํƒœ์˜ ์ž๋ฃŒ๊ตฌ์กฐ. ์ธ๋ฑ์Šค๋ฅผ ํ†ตํ•ด ์ฐธ์กฐ ๊ฐ€๋Šฅ. ์„ ์–ธํ•œ ์ž๋ฃŒํ˜•์˜ ๊ฐ’๋งŒ ์ €์žฅ ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋ฐฐ์—ด์˜ ํŠน์ง•

  • ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•ด ๊ฐ’์— ๋ฐ”๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ƒˆ๋กœ์šด ๊ฐ’์„ ์‚ฝ์ž…ํ•˜๊ฑฐ๋‚˜ ํŠน์ • ์ธ๋ฑ์Šค์— ์žˆ๋Š” ๊ฐ’์„ ์‚ญ์ œํ•˜๊ธฐ ์–ด๋ ค์›€.
    ์‚ฝ์ž… ํ˜น์€ ์‚ญ์ œํ•˜๋ ค๋ฉด ์ฃผ๋ณ€ ๊ฐ’์„ ์ด๋™์‹œํ‚ค๋Š” ๊ณผ์ • ํ•„์š”
  • ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋Š” ์„ ์–ธํ•  ๋•Œ ์ง€์ •. ํ•œ๋ฒˆ ์„ ์–ธ ํ›„ ๋Š˜๋ฆฌ๊ฑฐ๋‚˜ ์ค„์ผ ์ˆ˜ ์—†๋‹ค.
  • ๊ตฌ์กฐ๊ฐ€ ๊ฐ„๋‹จ

List

๊ฐ’๊ณผ ํฌ์ธํ„ฐ๋ฅผ ๋ฌถ์€ ๋…ธ๋“œ๋ผ๋Š” ๊ฒƒ์„ ํฌ์ธํ„ฐ๋กœ ์—ฐ๊ฒฐํ•œ ์ž๋ฃŒ๊ตฌ์กฐ

List์˜ ํŠน์ง•

  • ์ธ๋ฑ์Šค๊ฐ€ ์—†์œผ๋ฏ€๋กœ ๊ฐ’์— ์ ‘๊ทผํ•˜๋ ค๋ฉด Head ํฌ์ธํ„ฐ ๋ถ€ํ„ฐ ์ˆœ์„œ๋Œ€๋กœ ์ ‘๊ทผํ•ด์•ผํ•จ.
    ์ ‘๊ทผ ์†๋„ ๋А๋ฆผ.
  • ํฌ์ธํ„ฐ๋กœ ์—ฐ๊ฒฐ โ†’ ๋ฐ์ดํ„ฐ ์‚ฝ์ž… ์‚ญ์ œ ์—ฐ์‚ฐ ์†๋„ ๋น ๋ฆ„
  • ์„ ์–ธ ์‹œ ๋ณ„๋„ ํฌ๊ธฐ ์ง€์ •์•ˆํ•ด๋„ ๋จ. ํฌ๊ธฐ๊ฐ€ ๋ณ€ํ•˜๊ธฐ ์‰ฌ์šด ๋ฐ์ดํ„ฐ ๋‹ค๋ฃฐ ๋•Œ ์ ์ ˆ
  • ํฌ์ธํ„ฐ๋ฅผ ์ €์žฅํ•  ๊ณต๊ฐ„ ํ•„์š” โ†’ ๋ฐฐ์—ด๋ณด๋‹ค ๊ตฌ์กฐ ๋ณต์žก

Vector!!

๊ธฐ์กด์˜ ๋ฐฐ์—ด๊ณผ ๊ฐ™์€ ํŠน์ง•์„ ๊ฐ€์ง€๋ฉด์„œ ๋ฐฐ์—ด์˜ ๋‹จ์ ์„ ๋ณด์™„ํ•œ ๋™์  ๋ฐฐ์—ด์˜ ํ˜•ํƒœ

Vector์˜ ํŠน์ง•

์‚ฌ์šฉํ•˜๊ธฐ ํŽธ๋ฆฌํ•˜๊ณ , ์‰ฌ์›€

  • ๋™์ ์œผ๋กœ ์›์†Œ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค. ํฌ๊ธฐ๊ฐ€ ์ž๋™์œผ๋กœ ๋Š˜์–ด๋‚จ
  • ๋งจ ๋งˆ์ง€๋ง‰ ์œ„์น˜์— ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…ํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•  ๋•Œ ๋ฌธ์ œ X.
    ์ค‘๊ฐ„ ์‚ฝ์ž… ์‚ญ์ œ๋Š” ๋ฐฐ์—ด๊ณผ ๊ฐ™์€ ๋ฉ”์ปค๋‹ˆ์ฆ˜์œผ๋กœ ๋™์ž‘.
  • ๋ฐฐ์—ด๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ธ๋ฑ์Šค๋ฅผ ์ด์šฉํ•ด ๊ฐ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผ.

Vector example code

#include <iostream>
#include <ostream>
#include <vector>
using namespace std;
int main() {
  vector<int> A;
  A.push_back(10);
  A.push_back(30);
  A.push_back(5);
  A.push_back(8);
  A.push_back(8);
 
  A.push_back(1);
  A.insert(A.begin(), 7);
  A.insert(A.begin() + 2, 10);
 
  A[4] = -5;
 
  A.pop_back();
  A.erase(A.begin() + 3);
 
  cout << A.size() << endl;
  cout << A.front() << endl;
  cout << A.back() << endl;
  cout << A[3] << endl;
  cout << A.at(5) << endl;
}

Next

Range Sum (or Prefix Sum)