-
[Programmers] 2020 KAKAO BLIND RECRUITMENT: 기둥과 보 설치(Python)Problem Solving/Programmers 2021. 6. 9. 03:30
https://programmers.co.kr/learn/courses/30/lessons/60061?language=python3
정말 악랄한 문제 ~~
구현 문제를 오랜만에 풀어서 그런지 설계 부분에서 [보는 양쪽 끝단이 존재한다]라는 조건을 빼먹었고
그리고 기둥과 보가 같은 좌표에 존재할 수 있다는 것도 간과했당
질문게시판이 없엇다면......^^ 3일 걸렸을 듯
이번 주에 카카오식 구현 문제를 많이많이 풀어봐서 얼른 적응해야겠다 ~~~
pillar=[] beam=[] def pillarCheck(x, y): if y==0: return True elif (x>0 and beam[y][x-1]) or beam[y][x]: return True elif pillar[y-1][x]: return True return False def beamCheck(x, y): if pillar[y-1][x] or pillar[y-1][x+1]: return True elif beam[y][x-1] and beam[y][x+1]: return True return False def deleteCheck(): for i in range(len(pillar)): for j in range(len(pillar[i])): if pillar[i][j]: if pillarCheck(j,i)==False: return False if beam[i][j]: if beamCheck(j,i)==False: return False return True def solution(n, build_frame): global pillar, beam answer = [] n+=1 pillar=[[0 for _ in range(n)] for _ in range(n)] beam=[[0 for _ in range(n)] for _ in range(n)] for x,y,a,b in build_frame: if b==0: if a==0: pillar[y][x]=0 if deleteCheck()==False: pillar[y][x]=1 else: beam[y][x]=0 if deleteCheck()==False: beam[y][x]=1 else: if a==0 and pillarCheck(x,y)==True: pillar[y][x]=1 elif a==1 and beamCheck(x,y)==True: beam[y][x]=1 for i in range(n): for j in range(n): if pillar[i][j]: answer.append([j,i,0]) if beam[i][j]: answer.append([j,i,1]) return sorted(answer)
'Problem Solving > Programmers' 카테고리의 다른 글
[Programmers]2019 카카오 개발자 겨울 인턴십: 호텔 방 배정(C++)/Disjoint Set (0) 2021.06.15 [Programmers]2021 KAKAO BLIND RECRUITMENT: 카드 짝 맞추기(Python)/BFS (0) 2021.06.11 [Programmers] 2021 KAKAO BLIND RECRUITMENT: 메뉴 리뉴얼(Python) (0) 2021.06.08 [Programmers] 2020 카카오 인턴십: 동굴 탐험(C++) / Topological Sort (1) 2021.05.08 [Programmers]2021 KAKAO BLIND RECRUITMENT: 순위 검색(Python) (2) 2021.05.06