[백준] 2차원 배열 풀이 완료

YUN·2026년 2월 22일

C++

목록 보기
47/85

2차원 배열 풀이 완료~!

1. <2차원 배열> 풀며 배운 것

(1) char 자료형의 두 가지 모습

char 자료형은 참 신기하게도, 2가지 모습을 가진다.

'a'char 97 도 둘다 char 자료형 이다.

또한 둘은 정확히 동일하다.

'a' 는 표면적인 형태이고, char 97 은 내부적인 형태로 생각하면 된다.

코드에 'a'라고 되있더라도 이는 내부적으로 char 97 인 것이다.

(2) char 배열의 초기화

char arr[5][15] = {};

이렇게 하면 char 배열이 어떤 값으로 초기화될까?

다들 알다시피 char 0 으로 초기화된다.

그렇다면 char 0은 무엇일까? '\0' 이다. (\0의 ASCII 코드는 0 이다)

따라서 위의 방식으로 초기화하면 char 배열이 전부 '\0' 으로 초기화된다.

이를 이용해 해당 칸의 데이터가 '\0' 인지 확인함으로써 배열의 해당 인덱스가 빈 칸 인지 아닌지 확인이 가능하다.

(3) 2차원 배열은 1차원 배열로 이루어진다.

arr (2차원 배열)
│
├── arr[0] (1차원 배열: int[4])
│   ┌─────────┬─────────┬─────────┬─────────┐
│   │ arr[0][0]│ arr[0][1]│ arr[0][2]│ arr[0][3]│
│   │   10    │   20    │   30    │   40    │
│   └─────────┴─────────┴─────────┴─────────┘
│
├── arr[1] (1차원 배열: int[4])
│   ┌─────────┬─────────┬─────────┬─────────┐
│   │ arr[1][0]│ arr[1][1]│ arr[1][2]│ arr[1][3]│
│   │   50    │   60    │   70    │   80    │
│   └─────────┴─────────┴─────────┴─────────┘
│
└── arr[2] (1차원 배열: int[4])
    ┌─────────┬─────────┬─────────┬─────────┐
    │ arr[2][0]│ arr[2][1]│ arr[2][2]│ arr[2][3]│
    │   90    │  100    │  110    │  120    │
    └─────────┴─────────┴─────────┴─────────┘

이렇듯, 위의 경우 arr[1]은 1행의 배열을 나타낸다.

(4) char arr[5][15] = {}; cin >> arr[i];

arr[i]는 2차원 배열을 이루는 char 배열중 하나이다. 따라서 위의 코드를 실행하면, 입력이 char 배열 타입으로 arr[i]에 들어간다.

예를들어보자,

C++ Stream Buffer에 afzz가 있다면 -> 이는 ['a','f','z','z','\0'] 의 형태로 arr[i]에 들어가게된다.

profile
안녕하세요. 전자공학부 학부생의 공부 기록입니다.

0개의 댓글