알고리즘 배우기20 [프로그래머스] Lv 1. 개인정보 수집 유효기간 1. 나의 풀이 (개월 수가 기준이 이므로 정직하게 개월 수로 계산한 풀이)def time_diff(today, privacies): diffs = [] t_year, t_month, t_day = map(int, today.split('.')) for pri in privacies: p_type = pri[-1] # 약관 유형 pri = pri[:-2] # 약관 시작 날짜 p_year, p_month, p_day = map(int, pri.split('.')) diff = ((t_year - p_year) * 12) + (t_month - p_month) # 만약 day가 지나지 않았다면, 개월 수 -1을 해줘야 한다. .. 2024. 6. 30. [프로그래머스] Lv 코테입문. 안전지대 1. 2중 for문을 3번 사용하고, 추가적으로 0 padding을 붙인 (n+2)X(n+2) matrix 메모리를 사용하였다.def flag (board): board_h = len(board) board_w = len(board[0]) height = board_h + 2 width = board_w + 2 pos = [] for row in range(board_h): for col in range(board_w) : if board[row][col] == 1: pos.append([row, col]) # 0 padding으로 채운 리스트 생성 padding_board = [.. 2024. 6. 25. [프로그래머스] Lv 1. 바탕화면 정리 # 해당 함수는 사용하지는 않음def distance(S, E): dist = (E[0] - S[0]) + (E[1] - S[1]) return dist# Bounding Box 처리와 같은 원리로 생각 sorting을 2번 진행하여 2Xnlogn 복잡도 에상def wall_calc(wall_list, rows, cols): wall_list.sort(key=lambda x: x[0]) #O(nlogn) lux = wall_list[0][0] rdx = wall_list[-1][0] + 1 #최소 y, 최대 x (좌측 상단) wall_list.sort(key=lambda x: x[1]) #O(nlogn) luy = wall_list[0][1] rdy = w.. 2024. 6. 25. [프로그래머스] Lv 1. 공원 산책 2024 NHN IT릴레이 장학금 문제 중 하나와 굉장히 유사한 문제이다. 70점 짜리 답안 - 무엇이 문제일까?1. calc함수의 복잡성: 똑같은 코드가 'E', 'W', 'S', 'N' 반복적으로 사용됨2. Non-pass test case가 존재함.def calc(park_list, op, n, pos): park_h = len(park_list)-1 park_w = len(park_list[0])-1 if op == 'W': if (pos[1] - n) park_w: return pos for step in range(n): if park_list[pos[0]][pos[1]+step]=='X': .. 2024. 6. 25. 이전 1 2 3 4 5 다음