티스토리 뷰
https://programmers.co.kr/learn/courses/30/lessons/60061
코딩테스트 연습 - 기둥과 보 설치
5 [[1,0,0,1],[1,1,1,1],[2,1,0,1],[2,2,1,1],[5,0,0,1],[5,1,0,1],[4,2,1,1],[3,2,1,1]] [[1,0,0],[1,1,1],[2,1,0],[2,2,1],[3,2,1],[4,2,1],[5,0,0],[5,1,0]] 5 [[0,0,0,1],[2,0,0,1],[4,0,0,1],[0,1,1,1],[1,1,1,1],[2,1,1,1],[3,1,1,1],[2,0,0,0],[1,1,1,0],[2,2,0,1]] [[
programmers.co.kr
주어지는 작업의 양이 최대 1000이고,
배열의 크기가 최대 100이므로 보/기둥을 설치/제거 해보고 전체배열을 확인하는 방식으로 코드를 짜는게 훨씬 쉽다.
금방 풀 줄 알았는데 대부분 테스트케이스가 틀렸다고 나와서 한참을 고민했다.
문제는
- 구조물이 겹치도록 설치하는 경우와, 없는 구조물을 삭제하는 경우는 입력으로 주어지지 않습니다.
위 조건을 잘못 알아들어서 였다.
구조물이 겹쳐지도록 설치하는 경우는 주어지지 않는다고 하여
{0,0,0} 과 {0,0,1} 이런 조건이 주어지지 않는다고 알아들었는데
생각해보면 기둥은 {0,0}에서 위로 설치하는 것이고, 보는 {0,0}에서 오른쪽으로 설치하는 것이므로
같은 지점이 주어질수도 있다.
기존에 기둥과 보 설치여부를 저장한 2차원 배열 mark[110][110]을 mark[2][110][110]으로 만들어서
기둥과 보를 각각 다른 차원에 저장해서 해결하였다.
또한 boundary 문제 때문에 모든 좌표는 1씩 더해서 ( (0,0)은 (1,1)로) 계산하고
마지막에 answer 벡터에 넣을때 원래 좌표로 되돌린후 넣어줬다.
'PS' 카테고리의 다른 글
프로그래머스. 징검다리 건너기 (0) | 2022.01.14 |
---|---|
프로그래머스. 길 찾기 게임 (0) | 2022.01.14 |
프로그래머스. 등굣길 (0) | 2022.01.12 |
프로그래머스. 여행경로 (0) | 2022.01.11 |
프로그래머스. 베스트 앨범 (0) | 2022.01.11 |
- Total
- Today
- Yesterday
- Python
- C++
- 자료구조
- MVC
- recursion
- BFS
- Spring
- 이분탐색
- permutation
- db
- Kruskal
- Tree
- C
- Stack
- two pointer
- priority queue
- DP
- greedy
- dfs
- Unity
- back tracking
- floyd warshall
- Brute Force
- Dijkstra
- graph
- 재귀
- 조합
- CSS
- binary search
- Implementation
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |