이번엔 백준 4단계 배열을 풀어볼 것이다
우선 나는 array보단 list를 더 선호한다
크기 지정할 필요도 없구 깔끔하고 사용하기 더 편하다고 느껴진다
GameObject[] objarr = new GameObject[5];
GameObject[0] = obj1;
GameObject[1] = obj2;
list<GameObject> objlist = new list<GameObject>();
objlist.add(obj);
array보단 확실히 list가 더 사용하기 깔끔하고 편함
근데 c++에선 list 사용하는게 더 어려운듯..
c++을 배우면서 드는 생각인데
약간 중국어 간체와 번체차이 같다
우리 회사는 글로벌 시장을 타겟을 두고 게임을 만들어서
국가별로 텍스트 로컬라이징을 해줘야하는데
로컬라이징 작업을 할때보면
중국어 간체랑 번체가 비슷하게 생겼으면서도 자세히 보면 다르게 생겼다
암튼 c++과 C#도 생긴건 비슷한데 안되는게 많아서 그런 느낌이 든다
입력 받은 값으로 배열의 크기를 지정해주려고
const로 상수 선언 하고 만들어서 입력한 값을 넣고
배열을 크기를 지정하려고 했는데 안된다
list로 작성하려고 했는데
안되길래 c++ list에 대해 찾아봤는데
내가 알던 List와 아주 다른 것 같았다
그래서 일단 배열로 다시 풀어봤다
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
int* arr = new int[n] ;
for (int i = 0; i < n; i++)
{
int a;
cin >> a;
arr[i] = a;
}
int v;
cin >> v;
int sum =0;
for (int i = 0; i < n; i++)
{
if (arr[i] == v)
{
sum++;
}
}
cout << sum;
}
5
1 1 4 8 6
4
1
list로 사용해서 풀어보고 싶어서 list로도 풀어보았다
#include <iostream>
#include <list>
using namespace std;
int main()
{
int n;
cin >> n;
list<int> list;
for (int i = 0; i < n; i++)
{
int a;
cin >> a;
list.push_back(a); // 리스트의 맨 뒤에 추가
}
int v;
cin >> v;
int sum = 0;
int size = list.size(); // 리스트의 개수
for (int i = 0; i < size; i++)
{
if (list.front() == v)
{
sum++;
}
list.pop_front(); // list.pop_front() 리스트의 첫번째 제거
}
cout << sum;
}
5
2 2 3 2 6
2
3
와 풀면서 느꼈는데
'이걸 사용 못한다고..?'를 몇번이나 말했는지 모르겠다
#include <iostream>
#include <list>
using namespace std;
int main()
{
int A, X;
cin >> A >> X;
list<int> _list;
for (int i = 0; i < A; i++)
{
int num;
cin >> num;
if(num < X)
_list.push_back(num);
}
int size = _list.size();
for (int i = 0; i < size; i++)
{
cout << _list.front() << " ";
_list.pop_front();
}
}
5 4
0 9 4 3 8
0 3
#include <iostream>
#include <list>
using namespace std;
int main()
{
int N;
cin >> N;
list<int> list;
for (int i = 0; i < N; i++)
{
int num;
cin >> num;
list.push_back(num);
}
int min = 1000000;
int max = -1000000;
int size = list.size();
for (int i = 0; i < size; i++)
{
if (min >= list.front())
min = list.front();
if (max <= list.front())
max = list.front();
list.pop_front();
}
cout << min << " " << max;
}
3
4
1
2
1 4
#include <iostream>
#include <list>
using namespace std;
int main()
{
list<int> _list;
for (int i = 0; i < 9; i++)
{
int num;
cin >> num;
_list.push_back(num);
}
int max = 0;
int maxnum =0;
int size = _list.size();
for (int i = 0; i < size; i++)
{
if (max < _list.front())
{
max = _list.front();
maxnum = i + 1;
}
_list.pop_front();
}
cout << max << "\n" << maxnum;
}
1
2
3
4
5
6
7
8
9
9
9
#include <iostream>
#include <list>
using namespace std;
int main()
{
int N, M;
cin >> N >> M;
int* arr = new int [N];
for (int i = 0; i < N; i++)
{
arr[i] = 0;
}
for (int i = 0; i < M; i++)
{
int a, b, c;
cin >> a >> b >> c;
for (int j = a; j <= b; j++)
{
arr[j-1] = c;
}
}
for (int i = 0; i < N; i++)
{
cout << arr[i] << " ";
}
}
5 4
2 4 1
1 3 2
2 4 2
3 3 4
2 2 4 2 0
#include <iostream>
using namespace std;
int main()
{
int N, M;
cin >> N >> M;
int* arr = new int[N];
for (int i = 0; i < N; i++)
{
arr[i] = i + 1;
}
for (int i = 0; i < M; i++)
{
int a, b, orga;
cin >> a >> b;
orga = arr[a-1];
arr[a - 1] = arr[b - 1];
arr[b - 1] = orga;
}
for (int i = 0; i < N; i++)
{
cout << arr[i] << " ";
}
}
5 4
2 2
2 4
3 5
1 5
3 4 5 2 1
#include <iostream>
using namespace std;
int main()
{
int arr[30];
for (int i = 0; i < 30; i++)
{
arr[i] = i + 1;
}
for (int i = 0; i < 28; i++)
{
int num;
cin >> num;
arr[num - 1] = 0;
}
int min = 30;
int max = 0;
for (int i = 0; i < 30; i++)
{
if (arr[i] == 0)
continue;
if (min > arr[i])
min = arr[i];
if (max < arr[i])
max = arr[i];
}
cout << min << "\n" << max;
}
3
4
5
6
7
8
9
10
13
23
11
12
14
15
16
17
18
19
20
21
22
24
25
26
1
27
28
30
2
29
#include <iostream>
using namespace std;
int main()
{
int arr[10];
for (int i = 0; i < 10; i++)
{
arr[i] = -1;
}
int check = 0;
for (int i = 0; i < 10; i++)
{
int num;
cin >> num;
for (int j = 0; j < 10; j++)
{
if (arr[j] == -1)
{
arr[j] = num % 42;
break;
}
if (arr[j] == num % 42)
{
check++;
break;
}
}
}
cout << 10 - check;
}
42
84
252
420
840
126
42
84
420
126
1
#include <iostream>
using namespace std;
int main()
{
int N, M;
cin >> N >> M;
int* arr = new int[N];
for (int i = 0; i < N; i++)
{
arr[i] = i + 1;
}
for (int i = 0; i < M; i++)
{
int a, b, c;
cin >> a >> b;
c = b - a + 1;
int* arr2 = new int [c];
for (int j = 0; j < c; j++)
{
arr2[j] = arr[b - j-1];
}
for (int j = a; j <= b; j++)
{
arr[j-1] = arr2[j - a];
}
}
for (int i = 0; i < N; i++)
{
cout << arr[i] << " ";
}
}
5 4
2 2
1 2
2 4
3 5
2 4 5 1 3
#include <iostream>
using namespace std;
int main()
{
int N;
cin >>N;
int max = 0;
double sco = 0;
for (int i = 0; i < N; i++)
{
double num;
cin >> num;
if (max < num) max = num;
sco += num;
}
cout << sco/N / max * 100;
}
9
10 20 30 40 50 60 70 80 90
55.5556