```
백준 17608번 막대기 C++ 구현해보기
```

이번 글을 통해 배워갈 내용
- 백준 17608번 막대기 풀이
https://www.acmicpc.net/problem/17608
17608번: 막대기
아래 그림처럼 높이만 다르고 (같은 높이의 막대기가 있을 수 있음) 모양이 같은 막대기를 일렬로 세운 후, 왼쪽부터 차례로 번호를 붙인다. 각 막대기의 높이는 그림에서 보인 것처럼 순서대로
www.acmicpc.net
백준 17608번은
난이도 브론즈 등급의 문제로서
한 줄로 세워진 수직 막대기를
수평으로 세워진 방향의 반대 방향에서 보았을 때
몇 개의 막대기가 보이는지 개수를 찾는 문제입니다.
30분 정도 위에 링크를 방문하셔서 풀어보시고
안 풀리시는 경우에만 아래 해답을 봐주시면 감사하겠습니다.
막대기의 개수를 받고
막대기의 수만큼
벡터에 막대기의 길이를 받고
벡터를 뒤집어서
함수에 넣은 다음
하나씩 보면서 비교하면서
보이는 막대를 세주면 되는 문제입니다.
전체 코드는 다음과 같습니다
#include <iostream>
#include <string>
#include <sstream>
#include <vector>
#include <array>
#include <stack>
#include <queue>
#include <map>
#include <algorithm>
#include <numeric>
#include <cmath>
#include <regex>
namespace kimc::lib {
int32_t bar_horizontal_view_cnt(std::vector<int32_t> barVec)
{
int32_t barSeenCnt = 0;
int32_t curMaxHeight = 0;
const size_t barVecSize = barVec.size();
for (size_t i = 0; i < barVecSize; i++)
{
if (barVec[i] > curMaxHeight)
{
barSeenCnt++;
curMaxHeight = barVec[i];
}
}
return barSeenCnt;
}
}
int main()
{
// 입력 최적화
std::cin.tie(NULL);
std::ios::sync_with_stdio(false);
std::string inputStr;
std::getline(std::cin, inputStr);
std::stringstream ss(inputStr);
int32_t barCount;
ss >> barCount;
ss.seekg(0);
std::vector<int32_t> barVec;
for (int32_t i = 0; i < barCount; i++)
{
std::getline(std::cin, inputStr);
ss.str(inputStr);
int32_t barLength;
ss >> barLength;
barVec.push_back(barLength);
ss.seekg(0);
}
std::reverse(barVec.begin(), barVec.end());
std::cout << kimc::lib::bar_horizontal_view_cnt(barVec);
}
읽어주셔서 감사합니다
무엇인가 얻어가셨기를 바라며
오늘도 즐거운 코딩 하시길 바랍니다 ~ :)
참조 및 인용
C++ Primer
Introduction to Algorithms
https://codemasterkimc.tistory.com/35
C++ 이론을 배울수 있는 곳 정리
개요 C++을 배우는 책, 강의, 블로그, 링크 등을 공유합니다. (링크 및 간략한 설명을 하였으나 만약 원작자가 링크를 거는것을 원치 않을 경우 연락주시기 바랍니다.) 서적 https://www.amazon.com/Prime
codemasterkimc.tistory.com
https://codemasterkimc.tistory.com/50
300년차 개발자의 좋은 코드 5계명 (Clean Code)
이번 글을 통해 배워갈 내용 좋은 코드(Clean Code)를 작성하기 위해 개발자로서 생각해볼 5가지 요소를 알아보겠습니다. 개요 좋은 코드란 무엇일까요? 저는 자원이 한정적인 컴퓨터 세상에서 좋
codemasterkimc.tistory.com
'C++ > C++ 알고리즘' 카테고리의 다른 글
| 백준 12603번, 백준 12604번 Store Credit C++ 구현해보기 (0) | 2021.10.31 |
|---|---|
| 백준 12605번, 12606번 단어순서 뒤집기 C++ 구현해보기 (1) | 2021.10.31 |
| 백준 2525번 오븐시계 C++ 구현해보기 (0) | 2021.10.31 |
| 백준 11971번 속도위반 C++ 구현해보기 (1) | 2021.10.31 |
| 백준 11970번 Fence Painting C++ 구현해보기 (0) | 2021.10.31 |