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
- unity #2d-game #minigame #vscode
- baekjoon #백준 #boj
- VS #비주얼스튜디오
- flutter #플러터 #분석
- 비주얼스튜디오 #코드스니펫
- 로컬저장소 #이름변경
- 플러터 #flutter #restful #rest api
- 백준
- flutter #firebase #플러터 #파이어베이스 #연동
- git #unity #깃허브
- boj #c++
- 비주얼 스튜디오 #vs #visual studio
- boj #baekjoon
- flutter #상태관리
- 유데미 #udemy #웅진씽크빅 #스나이퍼팩토리 #인사이드아웃 #미래내일일경험 #프로젝트캠프 #부트캠프 #react #리액트프로젝트 #프론트엔드개발자양성과정 #개발자교육과
- flutter #플러터
- 인턴 #프론트엔드 #개발자 #프론트엔드개발자 #취준
- 백준 #boj #baekjoon
- boj #baekjoon #c++
- flutter #git
- firebase #파이어베이스
- flutter #깃
- flutter #app #취준
- flutter #todolist
- 백준 #boj
- Flutter
- #유데미 #udemy #웅진씽크빅 #스나이퍼팩토리 #인사이드아웃 #미래내일일경험 #프로젝트캠프 #부트캠프 #react #리액트프로젝트 #프론트엔드개발자양성과정 #개발자교육과정
- unity #2d-game
- baekjoon #boj #c++
- 백준 #c++
Archives
- Today
- Total
cococo-coding
[C++ 풀이] 14487번. 욱제는 효도쟁이야!! 본문
문제 분석
마을의 수가 주어지고, 한쪽으로만 마을을 쭉 도는 방법으로 모든 마을들을 가야한다.
이때 최소한의 이동비용을 갖는 비용을 구하려면, 가장 이동비용이 높은 이동거리 하나만을 제외하면 된다.
알고리즘 설계
벡터와 알고리즘 헤더의 sort()함수를 이용해서 구현했다.
벡터로 이동비용을 입력받아 넣고, sort함수로 오름차순으로 벡터를 정리한 후에
마지막 요소(가장 긴 이동비용)을 제외한 나머지를 다 더해주어 출력했다.
시간 복잡도
벡터에 이동비용 입력받기 - n
sum구하기 - n
-> 대략 n+n = 2n 이므로 O(n)
코드
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
/*
1.마을수를 입력받음
2.이동비용을 입력받는다
3.최소 이동비용을 구한다
4.최소 이동비용을 출력한다
*/
int main() {
//1
int n;
cin >> n;
//2
vector <int> move(n);
for (int i = 0; i < n; i++) {
cin >> move[i];
}
//3
sort(move.begin(), move.end());
//4
int sum = 0;
for (int j = 0; j < n - 1; j++) {
sum += move[j];
}
cout << sum << '\n';
return 0;
}
느낀 점
문제 그림을 보고 원형큐를 만들어서 풀어야하나? 싶었는데
굳이 어렵게 생각하지 않고, 가장 이동비용이 긴 하나만 제외하면 되는 문제였다.
쉽게 풀 수 있는 문제인데 헤맸던 것 같다 ㅠㅠ