728x90
시행착오
기둥과 보를 설치하거나 삭제할 경우 is_possible(x, y, a, answer)를 이용해서 answer에 x, y 좌표에 a(기둥/보)를 설치할 수 있냐 없냐를 반환하려고 했다.
1. 설치할 경우 answer.append(x,y,a)로 설치한 후 , is_possible(x, y, a, answer) 실행하고 함수가 false를 반환하면 answer.remove(x,y,a)해서 설치한거 제거
2. 삭제할 경우 answer.remove(x,y,a)로 제거한후, is_possible(x, y, a, answer) 실행하고 함수가 false를 반환하면 answer.remove(x,y,a)해서 설치한거 제거
근데 is_possible에 x,y,a를 넘겨줘서 그걸 기준으로 설치할 수 있느냐를 고려하는 함수인데, 위와 같은 흐름이 나오지않음, 삭제할 경우의 함수를 따로 만들어서 구현해줘야함. 그러면 고려해야할 조건이 너무 많아진다. (예를 들어서 보를 삭제할 경우 삭제할 보와 연결된 보가 조건을 만족하느냐부터 시작해서 보와 연결된 기둥이 조건을 만족하는지 까지 고려해야된다.)
여기서 부터 답을 참고했다
삭제, 설치 연산에 따라 answer에 추가하거나 삭제한 후, is_possible함수를 실행할 때 answer만 넘겨줘서 answer의 요소를 하나씩 설치하면서 보나 기둥이 조건을 만족하는지 확인하면 된다.
728x90
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[이진탐색] 가사 검색 (bisect 라이브러리 사용) (0) | 2024.08.11 |
---|---|
[구현] 연속된 부분 수열의 합 (투포인터에 대해서...) (0) | 2024.08.05 |
[구현] 자물쇠와 열쇠 (0) | 2024.04.29 |
[구현] 문자열 압축 (0) | 2024.03.11 |
무지의 먹방 라이브 (0) | 2023.10.02 |