반응형

배열(array)은 데이터 형이 같은 여러 개의 값을 연속적으로 저장할 수 있는 데이터 구조이다.

int array[5] = {10, 20, 30, 40, 50};

이렇게 초기화를 한다면 이것을 int 형의 배열이라고 한다.

(만약 초기화를 하지 않고 선언, 즉 int array[5]; 를 한다면 배열 원소들은 그 메모리 위치에 전부터 우연히 남아있던 쓰레기 들을 값으로 취한다. 그래서 선언보단 모든 변수는 초기화를 해주는 것이 좋다.)

          index              0               1               2               3               4
          value             20              20              30              40              50

 

배열은 개별적인 접근을 허용하기 위해 index를 사용하여 배열 원소에 차례로 번호를 부여한다.

이것이 배열의 유용한 점이다.

 

C++ 배열 index는 항상 0부터 시작한다는 것을 꼭 명심해야 한다.

 

 

 

문자열은 메모리에 바이트 단위 연속적으로 저장되어 있는 문자들을 말한다.

string은 추후에 살펴보도록 하고 우선 C 스타일 문자열을 살펴본다.

문자열은 독특한 특징을 가지고 있는데 마지막에 꼭 \0 (null character)를 넣어줘야 한다는 것이다.

 

char tiger[5] = {'h', 'a', 'p', 'p', 'y'};
char tiger[5] = {'m', 'o', 'm', 'o', '\0'};

두 배열 모두 char형 배열이지만 두 번째만이 문자열이다.

\0 를 만날 때까지 문자 단위로 문자열을 처리한다.

따라서 문자열을 저장하는 데 필요한 char형 배열의 최소 크기를 정할 때 

null character 하나가 추가된다는 것을 고려해야 한다.

 

반응형

'C++' 카테고리의 다른 글

C++ / 6. struct 구조체  (0) 2024.01.02
C++ / 5. string 클래스  (0) 2023.12.18
C++ / 3. const  (0) 2023.12.14
C++ / 2. #include 와 iostream 파일  (0) 2023.12.14
C++ / 1. main() (메인 함수) 의미  (0) 2023.12.14
반응형

받은 점수 중 최댓값을 찾고 저장한 후 평균 점수를 구하는 간단한 문제이다.

 

#include using namespace std; int main() { int N = 0; int arr[1000]; cin >> N; for (int i = 0; i < N; i++) { cin >> arr[i]; } double sum = 0; double max_arr = 0; for (int i = 0; i < N; i++) { sum += arr[i]; if (arr[i] > max_arr) max_arr = arr[i]; } double result = sum * 100 / max_arr / N; cout << result << endl; return 0; }

 

이때 결과가 double일 가능성이 있기 때문에

sum과 max를 초기화 할 때도 double로 해줘야 한다.

 

int 또는 long으로 하면 마지막 result를 저장하는 과정에서

형 변환이 일어나지 않고 int나 long으로 축소시켜 저장하여 출력한다.

 

즉 결과가 double일 수도 있기 때문에

double 값으로 출력한다면 그 계산에 들어가는 변수도 double로 만들어줘야 한다.

 

 

https://www.acmicpc.net/problem/1546

 

1546번: 평균

첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보

www.acmicpc.net

 

반응형
반응형

N개의 숫자의 합을 구하는 간단한 문제이다.

 

#include <iostream>

using namespace std;

int main()
{
	int N = 0;
	string num;

	cin >> N;
	cin >> num;

	int sum = 0;
	for (int i = 0; i < num.length(); i++)
	{
		sum += num[i] - '0';
	}

	cout << sum << endl;


	return 0;
}

 

num[i] - '0' 으로 쉽게 형 변환을 할 수 있다.

 

 

https://www.acmicpc.net/problem/11720

 

11720번: 숫자의 합

첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다.

www.acmicpc.net

 

반응형

'백준 알고리즘 with C++' 카테고리의 다른 글

[11659] 구간 합 구하기 4 with C++/Cpp  (0) 2023.12.15
알고리즘 시간 복잡도  (0) 2023.12.15
[1546] 평균 with C++/Cpp  (0) 2023.12.14
반응형

코드를 작성하면서 원주율과 같이 변하지 않아야 하는 변수가 존재할 수 있다.

이 때 const 제한자를 이용하면 편리하다.

 

const pi = 3.14;

 

이런식으로 상수로써 지정하면 다른 곳에서 그 값을 바꿀 수 없기 때문에 유용하다.

 

 

크게 세 가지 장점을 들 수 있는데,

 

1. 데이터 형을 명시적으로 지정할 수 있다는 점이다.

     C에서는 #define을 이용하여 지정하는데 반해 C++에서 const를 사용하여 데이터 형을 지정할 수 있다.

 

2. 특정 함수나 파일에서만 사용하도록 제한할 수 있다.

 

3. 배열이나 구조체와 같은 복잡한 데이터 형에도 const를 사용할 수 있다.

 

 

 

생각보다 함수나 클래스 등 많은 것을 작성할 때 매우 자주 등장한다.

반응형

'C++' 카테고리의 다른 글

C++ / 6. struct 구조체  (0) 2024.01.02
C++ / 5. string 클래스  (0) 2023.12.18
C++ / 4. array 배열  (0) 2023.12.15
C++ / 2. #include 와 iostream 파일  (0) 2023.12.14
C++ / 1. main() (메인 함수) 의미  (0) 2023.12.14

+ Recent posts