Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 로컬저장소 #이름변경
- firebase #파이어베이스
- 비주얼스튜디오 #코드스니펫
- 백준
- flutter #todolist
- 백준 #boj
- 백준 #boj #baekjoon
- git #unity #깃허브
- flutter #firebase #플러터 #파이어베이스 #연동
- unity #2d-game #minigame #vscode
- Flutter
- flutter #플러터
- flutter #플러터 #분석
- flutter #상태관리
- 유데미 #udemy #웅진씽크빅 #스나이퍼팩토리 #인사이드아웃 #미래내일일경험 #프로젝트캠프 #부트캠프 #react #리액트프로젝트 #프론트엔드개발자양성과정 #개발자교육과
- flutter #app #취준
- VS #비주얼스튜디오
- flutter #git
- 비주얼 스튜디오 #vs #visual studio
- 백준 #c++
- #유데미 #udemy #웅진씽크빅 #스나이퍼팩토리 #인사이드아웃 #미래내일일경험 #프로젝트캠프 #부트캠프 #react #리액트프로젝트 #프론트엔드개발자양성과정 #개발자교육과정
- 플러터 #flutter #restful #rest api
- baekjoon #백준 #boj
- baekjoon #boj #c++
- boj #c++
- boj #baekjoon #c++
- flutter #깃
- 인턴 #프론트엔드 #개발자 #프론트엔드개발자 #취준
- unity #2d-game
- boj #baekjoon
Archives
- Today
- Total
cococo-coding
[C++ 풀이] 1026번. 보물 본문
문제
풀이
벡터와 sort정렬을 이용한다.
n을 입력받는데, 이때 n은 정수 배열 A와 B의 크기인데 배열의 크기를 n으로 넣을 수 없으므로 벡터를 사용했다.
vector <int> avec(n);
vector <int> bvec(n);
위와 같이 A벡터(avec)와 B벡터(bvec)를 선언하고, 크기는 입력받은 n을 그대로 넣어준다.
for문을 이용해 각각의 원소들을 입력받는다.
배열과 동일하게 avec[i], bvec[i]로 써주면 된다.
a벡터는 내림차순으로, b벡터는 올림차순으로 정렬한 후에 각 원소끼리 곱해주면
S의 최솟값을 구할 수 있다.
a벡터의 입력값 > 1 1 1 6 0
b벡터의 입력값> 2 7 8 3 1
-----------------------------------------
a벡터 내림차순으로 정렬> 6 1 1 1 0
b벡터 올림차순으로 정렬> 1 2 3 7 0
-------------------------------------------------
a벡터*b벡터의 결과> 6 2 3 7 0
다시 for문을 이용해 sum에 결과값을 누적시켜 더해준후에, sum을 출력한다.
코드
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
/*
sort정렬을 이용하자
1. n을 입력받는다.
2. A의 숫자들, B의 숫자들을 n개씩 입력받는다. (-> 크기가 n이므로 벡터 사용)
3. S의 최솟값을 찾는다.
4. S의 최솟값을 출력한다.
*/
int main() {
//1
int n;
cin >> n;
//2
vector<int> avec(n);
vector<int> bvec(n);
int sum = 0;
//A원소들 입력받기
for (int i = 0; i < n; i++) {
cin >> avec[i];
}
//B원소들 입력받기
for (int i = 0; i < n; i++) {
cin >> bvec[i];
}
//3
//a벡터는 내림차순으로 정렬
sort(avec.rbegin(), avec.rend());
//b벡터는 올림차순으로 정렬
sort(bvec.begin(), bvec.end());
//4
for (int i = 0; i < n; i++) {
sum+=avec[i] * bvec[i];
}
cout << sum << endl;
return 0;
}
'[BOJ] 코드 모음 > C++_learning 문제집' 카테고리의 다른 글
[C++ 풀이] 5586번. JOI와 IOI (0) | 2024.01.17 |
---|---|
[C++ 풀이] 2751번. 수 정렬하기 2 (0) | 2024.01.17 |
[C++ 풀이] 2355번. 시그마 (0) | 2024.01.16 |
[C++ 풀이] 2774번. 아름다운 수 (0) | 2024.01.16 |
[C++ 풀이] 11575번. Affine Cipher (0) | 2024.01.16 |