티스토리 뷰

PS

프로그래머스. 기둥과 보 설치

tose33 2022. 1. 12. 21:35

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
링크
«   2025/04   »
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
글 보관함