이 포스팅은 템닉의 개발저장소의 레거시 글입니다.
템닉의 개발저장소
기억 못할 수도 있는 지식들을 덤프해버리는 공간입니다.
tempnixk.tistory.com
1. 개수세기 (문제번호 10807)
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
short N, v, i;
vector<int> vector(0,0);
cin >> N;
while(N!=0) {
cin >> i;
vector.push_back(i);
N--;
}
cin >> v;
cout << count(vector.begin(), vector.end(), v) << "\n";
return 0;
}
STL 인 vector를 사용해보았다. vector에 대해서는 추후 공부가 더 필요하겠지만, 일단 vector(e, i) 처럼 선언해서 e개의 원소에 i를 대입하여 초기화할 수 있다. 그리고 push_back 함수를 통해 배열의 맨 뒤에 원소를 추가할 수 있다.
count는 vector와 같은 컨테이너에서 특정 원소의 개수를 구할 때 사용한다. 첫번째와 두번째 파라미터는 범위를 지정해주고 마지막 파라미터가 원하는 값을 잡아서 카운트해준다.
https://jhnyang.tistory.com/230 vector 관련한 구글링을 하던 중에 댓글에서 궁금한 점이 생겼다. 답변이 다시 달리길 기대하며...
2. X보다 작은 수(문제번호 10871)
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
short N, X, i, n ;
vector<short> vec;
cin >> N >> X;
for(i=0;i<N;i++) {
cin >> n;
if(n<X)
vec.push_back(n);
}
for(i=0; i<vec.size(); i++)
cout << vec[i] << " ";
return 0;
}
3. 최소, 최대 (문제번호 10818)
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
int N, num;
vector<int> vec;
cin >> N;
for(int i=0;i<N;i++) {
cin >> num;
vec.push_back(num);
}
cout << *min_element(vec.begin(), vec.end()) << " " << *max_element(vec.begin(), vec.end()) << endl;
return 0;
}
4. 최댓값 (문제번호 2562)
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
int num, max, count = 1;
vector<int> vec;
for(int i=0;i<9;i++) {
cin >> num;
vec.push_back(num);
}
max = *max_element(vec.begin(), vec.end());
int i = 0;
while(vec[i]!=max) {
i++;
count++;
}
cout << max << endl;
cout << count;
return 0;
}
5. 공 넣기 (문제번호 10810)
으응ㅁ..... 10810번 문제는 vector보다 array를 쓰는게 더 편해보이는데...
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
unsigned short N, M, i, j , k, f, g;
unsigned short arr[N]={0, };
cin >> N >> M;
for(f=0;f<M;f++) {
cin >> i >> j >> k;
for(g=i; g<=j; g++) {
arr[g-1]=k;
}
}
for(f=0;f<N;f++) {
cout << arr[f] << "";
}
return 0;
}
array 안에 N을 그냥 박아넣는게 원래 안되는 거였나...? 다른 사람들 풀이를 봐도 100을 때려 넣었길래 시도해봤더니 성공으로 떴다... 지금까지 시도를 가장 많이 했던 문제인듯 하다...
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
unsigned short N, M, i = 0, j = 0, k, f, g;
unsigned short arr[100]={0, };
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cin >> N >> M;
for(f=0; f<M; f++) {
cin >> i >> j >> k;
for(g=i; g<=j; g++) {
arr[g-1]=k;
}
}
for(f=0; f<N; f++) {
cout << arr[f] << " ";
}
return 0;
}
6. 공 교환 (문제번호 10813)
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
unsigned short N, M, i, j, temp, k;
unsigned short arr[N];
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cin >> N >> M;
for(k=0;k<N;k++) {
arr[k]=k+1;
}
while(M-->0) {
cin >> i >> j;
temp = arr[i-1];
arr[i-1] = arr[j-1];
arr[j-1] = temp;
}
for(k=0; k<N; k++) {
cout << arr[k] << " ";
}
return 0;
}
7. 과제 안 내신 분..? (문제번호 5597번)
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
int i=30, num;
vector<int> vec = {1,2,3,4,5,6,7,8,9,10,11,12,13,
14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30};
for(i=0;i<28;i++) {
cin >> num;
vec.erase(remove(vec.begin(), vec.end(), num), vec.end());
}
for(i=0;i<2;i++) {
cout<<vec[i]<<endl;
}
return 0;
}
8. 나머지 (문제번호 3052)
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
int num, i;
vector<int> vec;
for(i=0;i<10;i++) {
cin >> num;
num = num % 42 ;
vec.push_back(num);
}
sort(vec.begin(), vec.end());
vec.erase(unique(vec.begin(), vec.end()), vec.end());
cout << vec.size();
return 0;
}
9. 바구니 뒤집기 (문제번호 10811)
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
unsigned short N, M, i, j, k, l;
vector<short> vec;
cin >> N >> M;
for (k=0; k<N; k++)
vec.push_back(k+1);
for(k=0;k<M;k++) {
cin >> i >> j;
reverse(vec.begin()+i-1, vec.begin()+j);
}
for(l=0; l<vec.size(); l++) {
cout << vec[l] << " ";
}
return 0;
}
10. 평균 (문제번호 1546)
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main() {
unsigned short N, score;
cin >> N;
vector<short> vec;
int totalScore = 0;
for (int i = 0; i < N; ++i) {
cin >> score;
vec.push_back(score);
totalScore += score;
}
sort(vec.begin(), vec.end());
int M = vec.back();
double average = static_cast<double>(totalScore) / M * 100 / N;
cout << average << endl;
return 0;
}
'백준' 카테고리의 다른 글
[백준] 10699번 - 오늘 날짜 (0) | 2024.03.18 |
---|---|
백준 단계 5. 문자열 (0) | 2024.03.17 |
백준 단계 3. 반복문 (0) | 2024.03.17 |
백준 단계 2. 조건문 (0) | 2024.03.17 |
백준 단계 1. 입출력과 사칙연산 추가된 문제들 풀이 (0) | 2024.03.17 |