카카오4 블록 이동하기 Python 정리 및 구현 (카카오 기출 / 프로그래머스) 블록 이동하기 프로그래머스: https://school.programmers.co.kr/learn/courses/30/lessons/60063 Edge case 1. BFS 범위 설정 = N or nny = N): if check[nx][ny] == 0: if not (board[nx][ny] or board[nnx][nny]): check[nx][ny] = 1 # 넘어가자마자 바로 체크에 걸려버림 dfs(nx, ny, dir, cnt+1, check, board) check[nx][ny] = 0 # 후진 nx, ny = x+dx[(dir+2) % 4], y+dy[(dir+2) % 4] # @@ % 꼭 해줘야해 if not (nx = N or ny < 0 or n.. 2022. 9. 2. 괄호변환 Python 정리 및 분석 (프로그래머스, 카카오 기출) 괄호변환 프로그래머스: https://school.programmers.co.kr/learn/courses/30/lessons/60058 Edge case 1. 재귀 종료조건 확인 Code 문제의 안내대로 진행 # 괄호변환 # https://school.programmers.co.kr/learn/courses/30/lessons/60058 # 15:15 ~ 16:30 # @@ 재귀는 종료조건이 꼭 있어야함 def check(s): # 올바른 괄호 문자열인지 체크 lcnt = 0 rcnt = 0 for i in range(len(s)): if s[i] == '(': lcnt += 1 else: rcnt += 1 if rcnt > lcnt: return False return True def .. 2022. 7. 29. 외벽점검 Python 정리 및 구현 (카카오 기출) 외벽 점검 프로그래머스: https://school.programmers.co.kr/learn/courses/30/lessons/60062 Edge case 1. 문제조건 글을 꼼꼼히 읽고 문제를 풀자 Code 1. 1트 시간초과 인원수별로 시작 자리 weak 배열 내의 원소에서 permutation으로 지정한 뒤 모든 weak이 다 찼는지 확인하는 코드 # 외벽 점검 # https://school.programmers.co.kr/learn/courses/30/lessons/60062 # 1트 # 11:22 - 12:00 # 시간 초과 from itertools import permutations def solution(n, weak, dist): c = [0] * n dist.sort(reverse=T.. 2022. 7. 28. 기둥과 보 설치(2020 Kakao) 정리 및 코드 기둥과 보 설치 프로그래머스 Level3: https://school.programmers.co.kr/learn/courses/30/lessons/60061 Edge case 항상 주의해야하는 항목 1. 좌표 수정 좌표 수정(x-1, y-1)에는 항상 범위 체크할 필요가 있음 (이 문제에선 아님) 2. 문제 조건 매번 조건을 꼼꼼히 확인할 필요가 있음 여기서는 배열식 표현에 메일필요가 없음 그냥 데카르트 좌표계 그대로 진행해도 문제될게 없음 탐색시간이 많이 걸리긴 하나, 이 문제는 실행시간이 5초로 넉넉하므로 의 복잡도까지 가능 Code 처음 풀이는 2차원 배열에 저장하는 방식으로 풀었었는데 너무 복잡하여 생략하였다. 2차원 배열을 사용할 필요없이 answer 배열만 가지고도 해결가능한 Case! # 기.. 2022. 7. 26. 이전 1 다음