728x90
https://school.programmers.co.kr/learn/courses/30/lessons/60061
💡 문제 풀이
구현 문제이다.
제거하거나 삭제했을 때 정상적으로 잘 연결되어 있는지 확인하면 된다.
주어진 조건만 잘 맞추면 된다.
✔️ 느낀 점
시간이 충분히 주어졌고, 입력은 1000을 안 넘어서 시간이 충분한데 너무 어렵게 구현하려다가 시간을 많이 잡아먹었다. 충분히 쉽게 풀 수 있었는데 아직 테크닉이 많이 부족한 것 같다.
💻 코드
def check(answer):
for x, y, a in answer:
if a == 0: #기둥 체크
if y == 0 or [x-1, y, 1] in answer or [x, y, 1] in answer or [x, y-1, 0] in answer:
continue
return False
else: #보 체크
if [x, y-1, 0] in answer or [x+1, y-1, 0] in answer or ([x-1, y, 1] in answer and [x+1, y, 1] in answer):
continue
return False
return True
def solution(n, build_frame):
answer = []
for frame in build_frame:
x, y, a, b = frame
if b == 1: # 설치
answer.append([x, y, a])
if not check(answer):
answer.remove([x, y, a])
else: # 제거
answer.remove([x, y, a])
if not check(answer):
answer.append([x, y, a])
return sorted(answer)
'문제 풀이 > 프로그래머스 (Programmers)' 카테고리의 다른 글
[Python] 프로그래머스 : 게임 맵 최단거리 (0) | 2023.01.29 |
---|---|
[Python] 프로그래머스 : 호텔 방 배정 (0) | 2022.10.19 |
[Python] 프로그래머스 : 기지국 설치 (0) | 2022.10.09 |
[Python] 프로그래머스 : [3차] 압축 (1) | 2022.10.06 |
[Python] 프로그래머스 : [1차] 셔틀 버스 (0) | 2022.10.03 |
댓글