-
백준 1089 - 스타트링크 타워 (Python)BOJ PS/Python 2022. 12. 7. 13:39
진짜 한 대 쎄게 쥐어박고 싶은 구현 문제.
input을 받고 엘레베이터 램프를 저장하고, 램프의 상태가 될 수 있는 총 8개를 하나하나 정의한다.
그리고 그 램프를 이용하여 숫자가 어떻게 만들어지는지를 정의한다.
그 후에는 특정 형태의 '고장난' 램프가 어떤 램프가 될 수 있는지를 정의한다.
치환을 통해 어떤 숫자를 만들기 위해 5개의 행에 각각 어떤 램프가 있으면 가능한지의 리스트를 만든다.
그 후 5개의 행이 모두 특정 숫자의 특정 행 리스트에 들어있는지 아닌지를 확인한다.
만약 5개의 행이 다 들어있다면, 그 숫자를 만들 수 있는 것이니 그러한 숫자들을 모아 해당 digit의 가능 수 list로 만든다.
아니라면 애초에 만들지 못하는 수이니 나중에 별도로 -1을 반환하도록 한다.
이제 아까 받아두었던 input을 우리가 사용하고 싶은 형태로 바꿔준다.
그 후 함수를 실행하여 각 digit에 들어갈 수 있는 숫자가 모인 이중 배열을 반환한다.
마지막으로 각 자리수의 합/각 자리수의 가능한 수를 모으면 평균이 된다.
성가신 문제였다.
'BOJ PS > Python' 카테고리의 다른 글
백준 - LIS 알고리즘 관련 문제들 (Python) (0) 2022.12.08 백준 1260 - DFS와 BFS (Python) (0) 2022.12.08 백준 1034 - 램프 (Python) (0) 2022.12.07 백준 1389 -케빈 베이컨의 6단계 법칙 (Python) (0) 2022.12.07 백준 1992 - 쿼드트리 (Python) (0) 2022.12.07