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
- boj #baekjoon #c++
- 비주얼스튜디오 #코드스니펫
- firebase #파이어베이스
- 유데미 #udemy #웅진씽크빅 #스나이퍼팩토리 #인사이드아웃 #미래내일일경험 #프로젝트캠프 #부트캠프 #react #리액트프로젝트 #프론트엔드개발자양성과정 #개발자교육과
- 로컬저장소 #이름변경
- 백준 #boj
- baekjoon #boj #c++
- flutter #플러터 #분석
- flutter #firebase #플러터 #파이어베이스 #연동
- Flutter
- 백준 #boj #baekjoon
- flutter #상태관리
- 비주얼 스튜디오 #vs #visual studio
- unity #2d-game #minigame #vscode
- #유데미 #udemy #웅진씽크빅 #스나이퍼팩토리 #인사이드아웃 #미래내일일경험 #프로젝트캠프 #부트캠프 #react #리액트프로젝트 #프론트엔드개발자양성과정 #개발자교육과정
- boj #c++
- 인턴 #프론트엔드 #개발자 #프론트엔드개발자 #취준
- flutter #플러터
- baekjoon #백준 #boj
- flutter #깃
- flutter #todolist
- flutter #git
- git #unity #깃허브
- flutter #app #취준
- 백준 #c++
- 백준
- boj #baekjoon
- 플러터 #flutter #restful #rest api
- VS #비주얼스튜디오
- unity #2d-game
Archives
- Today
- Total
cococo-coding
[C++ 풀이] 14659번. 한조서열정리하고옴ㅋㅋ 본문
문제 분석
봉우리 겸 활잡이 수를 입력받는다.
각 봉우리 높이는 모두 다르고, 오른쪽으로만 이동하는 상황에서 가장 많은 적을 처치할 수 있는 숫자를 구한다.
(문제가 이해가 잘 안 갔는데 '힌트'를 보니 금방 이해가 되었다.)
알고리즘 설계
이중포문을 이용한다.
만약 4개의 봉우리를 입력받고, 각 봉우리가 1번, 2번, 3번, 4번이라고 한다면
i - j
1번 - 2,3,4번
2번 - 3,4번
3번 - 4번
이렇게 비교하도록 한다.
시간 복잡도
봉우리 높이 입력받기 - n
이중 포문 - (n-1)*{(n-1)+(n-2)+(n-3)....}
-> 대략 O(n2)
코드
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
/*
1. 봉우리 겸 활잡이 수를 입력받는다.
2. 봉우리의 높이를 입력받는다.
이중 포문 이용
*/
int main() {
//1
int n;
cin >> n;
//2
vector <int> hei(n);
for (int i = 0; i < n; i++) {
cin >> hei[i];
}
vector <int> win(n);
for (int i = 0; i <= n-2; i++) {
for (int j = i + 1; j <=n-1; j++) {
if (hei[i] > hei[j]) {
win[i]++;
}
else {
break;
}
}
}
//내림차순 정리
sort(win.rbegin(), win.rend());
cout << win[0] << '\n';
return 0;
}
느낀 점
이중포문을 써서 풀 수 있다는 점을 몰라서 많이 헤맸다.
하나의 포문에만 익숙해져있다보니 그렇게 풀려고 시도했고, 계속해서 카운트값을 어떻게 저장해야할지에 벽에 부딪혔다.
이런 문제의 경우는 이중포문을 쓰는 연습을 하도록 하자.
'[BOJ] 코드 모음 > C++_알고리즘' 카테고리의 다른 글
15786번. Send me the money (1) | 2024.02.06 |
---|---|
[C++ 풀이] 11034. 캥거루 세마리2 (1) | 2024.02.01 |
[C++ 풀이] 2810번. 컵홀더 (1) | 2024.01.30 |
[C++ 풀이] 2864번. 5와 6의 차이 (0) | 2024.01.28 |
[C++] 10162번. 전자레인지 (1) | 2024.01.28 |