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
- 에라토스테네스의 체
- 알고리즘
- 최소공배수
- vector
- 유클리드호제법
- 티스토리챌린지
- 프로그래머스
- stoi
- map
- C++
- DFS
- 우선순위큐
- DP
- BFS
- 그래프
- 다이나믹프로그래밍
- 이분탐색
- 분할정복
- 백준
- priority_queue
- 배열
- Sort
- 백트래킹
- int
- 오블완
- N과M
- 문자열
- 정렬
- Set
- 깊이우선탐색
Archives
- Today
- Total
안녕 세상아,
[SWEA/c++] 1206. [S/W 문제해결 기본] 1일차 본문
https://swexpertacademy.com/main/solvingProblem/solvingProblem.do
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
SWEA 처음 풀어보는데 낯선 입출력때문에 꽤나 오래 걸렸다..삼성 준비할 수도 있으니까 하루에 하나씩이라도 꾸준히 풀어봐야겠다. 문제 자체는 그렇게 어렵지 않던데..T를 입력 받지 않고 T=10으로 고정하고 실행해야지 정답 처리가 된다..왜..? 띠용 ㅜ...
암튼 푸는 방법은
1. 현재 기준으로 좌우로 두칸씩 비교하면 된다.
2. 하지만 크기가 5이상일 때만 성립이 되기 때문에 조건을 달아놓는다.
3. 좌우로 두칸씩이기 때문에 총 4개의 값을 max로 비교한다.
-> 다른 방법으로는 max값을 변수로 지정하고 큰 값으로 계속 갱신해준다.
4. 기준 값에서 가장 큰 값을 빼주고 계속 더해준다.
#include<iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main(int argc, char** argv)
{
int test_case;
int T=10;
/*
여러 개의 테스트 케이스가 주어지므로, 각각을 처리합니다.
*/
for (test_case = 1; test_case <= T; ++test_case)
{
int answer = 0;
//좌우로 두칸..
int x;
int y;
cin >> x;
vector<int> v;
for (int i = 0; i < x; i++) {
cin >> y;
v.push_back(y);
}
if (x > 4) {
for (int i = 2; i < v.size() - 2; i++) {
if (v[i] > v[i - 1] && v[i] > v[i - 2] && v[i] > v[i + 1] && v[i] > v[i + 2]) {
int leftMax = max(v[i - 1], v[i - 2]);
int rightMax = max(v[i + 1], v[i + 2]);
int finMax = max(leftMax, rightMax);
answer += v[i] - finMax;
}
}
}
cout << "#" << test_case << " " << answer << endl;
}
return 0;//정상종료시 반드시 0을 리턴해야합니다.
}
'SWEA' 카테고리의 다른 글
[SWEA/c++] 2805. 농작물 수확하기 (0) | 2024.11.09 |
---|---|
[SWEA/c++] 1240. [S/W 문제해결 응용] 1일차 - 단순 2진 암호코드 (0) | 2024.11.08 |
[SWEA/c++] 1209. [S/W 문제해결 기본] 2일차 - Sum (0) | 2024.10.18 |
[SWEA/c++] 1208. [S/W 문제해결 기본] 1일차 - Flatten (0) | 2024.10.17 |