반응형
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 | 31 |
Tags
- 성신여대편백집
- 방이편백육분삼십
- 뚝섬역맛집
- 서울숲누룽지통닭구이
- react
- 통영
- 방이편백육분삼십성신여대
- 돈암동맛집
- 스페인여행
- JavaScript
- 영화추천
- 파이썬
- 퇴사후공무원
- ubuntu자바설치
- springboot
- gradle
- 자바스크립트에러처리
- npm
- 통영예쁜카페
- ELK
- 통영에어비앤비
- 공무원
- 국가직
- 통영여행
- tomcat7
- 성북구맛집
- 한남동맛집
- 꼴뚜기회
- 성신여대맛집
- 한성대맛집
Archives
- Today
- Total
코린이의 기록
[BOJ] 10819 - 차이를 최대로 (C++) 본문
반응형
1. 알아두어야 할것
이 문제는 다음순열(Next permutation)을 이용하여 풀 수있는 문제이다.
2. 전체 소스
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int gMax=0;
int main(){
int num;
int result;
int sub;
cin >> num;
vector <int> v(num);
for(int i=0; i<num; i++){
cin >> v[i];
}
// 우선 오름차순으로 정렬시켜준다 (selection sort를 사용하였다.)
for(int i=0; i<num; i++){
for(int j=i+1; j<num; j++){
if(v[j] < v[i]){
swap(v[j], v[i]);
}
}
}
do{
sub = 0;
result = 0;
for(int i=0; i<num-1; i++){
sub = v[i] - v[i+1];
if(sub < 0) // 절대 값을 구하기
sub *= -1;
result += sub;
}
if(gMax < result)
gMax = result;
}while(next_permutation(v.begin(), v.end()));
cout << gMax << endl;
}
3. 참고사항
4. 문제
반응형
'c&c++ > 백준' 카테고리의 다른 글
[BOJ] 9095 - 1,2,3 더하기 (C++) (0) | 2018.05.08 |
---|---|
[BOJ] 11727 - 타일링2 (C++) (0) | 2018.05.08 |
[BOJ] 1463 - 1로 만들기 (C++) (0) | 2018.05.08 |
[BOJ] 1697 - 숨바꼭질 (C++) (0) | 2018.05.08 |
[BOJ] 10971 - 외판원 순회2 (C++) (0) | 2018.05.08 |
Comments