백준 10799 : 쇠막대기

혀니앤·2021년 3월 12일
0

C++ 알고리즘

목록 보기
35/118

★★★★☆

개인적 난이도...다풀고나서 다른 코드를 보니 이렇게 쉬울수가없다
어떻게든 풀려고 안간힘을 썼다..놀랍게도 정답처리가 되었고 푸는데 1시간도 안걸렸다
(1시간이 넘었다면 다른 코드로 정답처리가 되었을텐데..)
일단 노력이 가상해서 나의 풀이를 적긴 하지만..이렇게 비효율적일수가 없다

<나의 풀이>
1. 일단 쇠막대기의 시작점들을 새로운 스택에 저장한다..
2. vector에 레이저의 시작점들을 넣는다..() 모양이면 레이저니까..
3. 쇠막대기의 끝이 나타나면 쇠막대기에 있던 레이저들을 카운트해서 쇠막대기 하나가 몇개로 나뉘는지 일일이 계산한다....
4. 다 더한다..

진짜 직관적으로 코드를 짰다..
왜 한번에 여러개의 쇠막대기를 처리할 생각을 못했을까ㅠㅠ 좀더 분발해야겠다

https://github.com/jeongopo/DaliyCodeCpp/commit/51496d0967e70a9ae2b2775b399b795fae89e10e

<다른 사람의 풀이>

잘 설명되어있는 블로그 글을 참고했다.
레이저가 나타나면 스택size(지금까지 끝이 나타나지 않은 쇠막대기의 수)만큼 더해준다 !!

이 간단한 원리만 떠올린다면 금방 풀 수 있는 문제였다 ㅠ

https://hsp1116.tistory.com/29

profile
일단 시작하기

0개의 댓글