Company
교육 철학

LV04 배열

배열은 같은 타입의 변수들로  이루어진 집합이다.
우리는 배열을 다음과 같이 두가지 요소로 표현 할수 있습니다.
1.
배열의 시작 주소
2.
배열의 값의 크기
배열의 초기화 그리고 각 인덱스에 접근해서 배열에 메모리위치에 변수를 사용 가능하다.
여기서 우리는 각 데이터의 시작 주소를 쉽게 계산할 수 있습니다.
시작 주소
인덱스
1
1000+4∗0
0
2
1000+4∗1
1
3
1000+4∗2
2
4
1000+4∗3
3
5
1000+4∗4
4
이를 바탕으로 우리는 왜 인덱스가 1이 아닌 0부터 시작하는지에 대한 이유를 알 수 있습니다.
배열의 시작주소에서 item size에 인덱스를 곱한 값을 더하면 바로 각 item의 시작 주소를 계산할 수 있기 때문이죠.
// 기본적인 형태 #include <iostream> int main() { int arr[5] = { 1,2,3,4,5 }; // 숫자형(int) 배열 arr(배열의 이름) 의 길이는 5([5])이고 값은 {1,2,3,4,5} return 0; }
C++
복사
#include <iostream> int main() { int arr[5] = { 1,2,3,4,5 }; int index = 0; // 배열의 첫 번째 인덱스는 0이다. // 왜? 배열의 시작주소에서 item size에 인덱스를 곱한 값을 더하면 // 바로 각 item의 시작 주소를 계산할 수 있다. std::cout << arr[0]; // 1; index = 5; std::cin >> index; std::cout << arr[index]; // 지정되지 않은 값이다 return 0; }
C++
복사
배열은 반복문과 같이 쓰일때 무궁무진한 활용성을  보여줄수 있다.
#include <iostream> int main() { int arr[5] = { 1,2,3,4,5 }; for (int i = 0; i < 5; i++) { std::cout << arr[i]; // i값을 인덱스로 활용 } return 0; }
C++
복사

연습문제

문제 1번
for문을 사용해서 숫자 5개를 입력 받으세요
다시 for문을 돌려 배열의 값을 출력하세요
ex)

입력 예시

3 5 2 6 7

출력 예시

3 5 2 6 7
문제 2번
위 배열을 하드코딩 해주세요.
숫자 하나를 입력 받고, 입력 받는 index에 해당하는 배열 값을 출력 하세요.

입력 예시

3

출력 예시

3번index의값은6입니다
문제 3번
for문을 돌려 숫자 7개를 배열에 입력 받아주세요.
배열 첫번째 칸에 있는 숫자와
배열 마지막 칸에 있는 숫자를 더해
출력 해 주세요
만약 4 5 7 8 9 10 11 을 입력했다면,
배열에 입력을 받고
4와 11을 더 한 값인 15를 출력하면 됩니다.

입력 예시

4 5 7 8 9 10 11

출력 예시

15
문제 4번
숫자 1개 입력 받고,
입력 받은 숫자에 +5를 한 후
이 값으로 배열에 채워주세요
그리고 다시 for문을 돌려 배열값을 출력 해주세요.
ex)
입력 : 3
출력 : 8 8 8 8 8

입력 예시

3

출력 예시

8 8 8 8 8
문제 5번
아래 arr배열을 하드코딩 해주세요.
숫자 2개를 a, b 변수에 입력 받고,
그리고 arr[a]와 arr[b]의 합을 출력 해주세요

입력 예시

2 4

출력 예시

8
문제 6번
위 배열을 하드코딩 하세요.
숫자 1개 입력 받고,
입력받은 숫자 index에 해당하는 값이
2보다 크면(>) "우와" ,  아니면 "ㅠㅠ" 를 출력 해주세요.

입력 예시

1

출력 예시

ㅠㅠ
문제 7번
아래 숫자 5개를 배열에 하드코딩한 후, 숫자 1개(index)를 입력 받으세요
arr[index] 값에 100을 뺀 결과를 출력하세요
ex)
4를 입력했다면, 4번 index의 값에 100을 빼면 됩니다.
243 - 100 = 143

입력 예시

3

출력 예시

-19
문제 8번
숫자 하나를 입력 받으세요
만약 그 숫자가 5보다 크면
-> for문을 돌려 1부터 10까지 출력 해 주세요.
그렇지 않으면
-> for문을 돌려 5부터 1까지 출력 해 주세요.
힌트 : if와 for문을 적절히 사용하시면 됩니다.

입력 예시

3

출력 예시

5
4
3
2
1
문제 9번
위와 같이 5칸짜리 배열에 값을 하드코딩으로 채운 후
배열 값을 거꾸로 출력 하세요.

출력 예시

7 4 3 2 5
문제 10번
배열을 6칸을 선언 해 주세요
숫자 1개를 입력 받으세요
그리고 그 숫자부터 1씩 작은 숫자를 각 배열칸에 채워 주세요
그리고 2번 index의 값을 출력 해 주세요 (힌트 : cout << arr[2]; )
예로들어서 8을 입력 받았다고 한다면
8
7
6
5
4
3
이렇게 채워주시고 2번 index의 값은 6이기 때문에
숫자 6을 출력 해 주시면 됩니다.
[힌트]
for (x=0; x<6; x++)
{
arr[x] = ........;
}

입력 예시

8

출력 예시

6
문제 11번
숫자 4개 4칸짜리 배열 입력 받고,
for문 돌려 sum을 구한 후,  sum값을 출력 해주세요.
[힌트]
sum=sum+arr[x];
ex)
출력: 12

입력 예시

3 3 5 1

출력 예시

12
문제 12번
아래의 배열을 하드코딩해 주세요.
index값 하나를 입력받아 주세요.
입력된 index값 부터 배열 끝까지 출력 해 주세요.
ex)
3을 입력하셨다면
index 3번 부터 끝까지인
2
-33
57
82
-8
13
1
을 출력하시면 됩니다.

입력 예시

5

출력 예시

57
82
-8
13
1

훈련문제

문제 1번
다음과 같은 배열을 하드코딩 해 주세요.
3
2
6
7
1
8
그리고 숫자 하나를 입력받고, 그 숫자 위치에 있는 값을 출력 해 주세요.
ex)
2를 입력 했다면, 2번 index에는 값이 6이 들어 있기 때문에
출력 결과는 6 입니다.

입력 예시

0

출력 예시

3
문제 2번
복잡한 조건이 아래와 같이 주어집니다. 잘 읽고 풀어주세요
숫자 1개를 입력 받으세요
만약 그 숫자가 3이 아니라면
"3이 아니다" 라고 출력 해 주세요
만약 그 숫자가 5가 아니라면
"5가 아니다" 라고 출력 해 주세요
만약 그 숫자가 1보다 크고 10보다 작은 숫자라면
for문을 돌려 5부터 1까지 출력 해 주세요.

입력 예시

4

출력 예시

3이 아니다
5가 아니다
5
4
3
2
1
문제 3번
5칸 짜리 배열을 선언하세요
그리고 숫자를 하나 입력 받고,
그 숫자로 배열을 꽉 채워주세요
그리고 다시 for문을 돌려 출력 해 주세요

입력 예시

3

출력 예시

33333
문제 4번
다섯칸 짜리 배열을 만들어주세요.
그리고 다음과 같이 하드코딩한 후
for문을 돌려 출력 해 주세요
(* 하드코딩 : cin로 입력받지 않고, 소스코드에 숫자를 적어두는 것을 뜻함)
1
7
3
2
6

출력 예시

17326
문제 5번
배열에 값 7개를 입력 받고 난 뒤
0번 index값 + 1번 index값 + 2번 index값 을 출력 해주세요.
ex)
3+5+4 = 12
출력: 12

입력 예시

3 5 4 2 1 1 2

출력 예시

12
문제 6번
아래의 배열을 하드코딩 해 주세요.
그리고 숫자 3개 입력받고 숫자 3개의 합을 구해주세요
sum이 10보다 크면 맨 마지막칸을 출력
그렇지 않다면 첫번째 칸을 출력해 주세요.

입력 예시

1 2 3

출력 예시

3
문제 7번
아래의 배열을 하드코딩해 주세요.
index값 하나를 입력받아 주세요.
입력된 index값 부터 배열 첫번째 까지 출력 해 주세요.
ex)
4를 입력 받으셨다면
4번 index부터 배열 첫번째 까지인
-4
8
1
7
5
를 출력 해 주시면 됩니다.

입력 예시

5

출력 예시

-73
-4
8
1
7
5
문제 8번
숫자 1개를 입력 받으세요
그 숫자부터 1씩 증가되는 숫자를
6칸짜리 배열에 채워주세요
만약 3을 입력받았다면
이렇게 배열에 채우고 출력하시면 됩니다.
3
4
5
6
7
8

입력 예시

3

출력 예시

3
4
5
6
7
8
문제 9번
4칸짜리 배열을 만들고, 배열을 0으로 초기화 해주세요.
숫자 2개를 입력하고
입력한 숫자 2개를 0번 index와 2번 index에 넣어주세요.
ex)
입력 : 3 5
출력 : 3050

입력 예시

3 5

출력 예시

3050