본문 바로가기

알고리즘 문제 풀이/Programmers24

[24회차] 주차 요금 계산 Programmers Level.2 주차 요금 계산 import math def solution(fees, records): default_time, default_cost, unit_time, unit_cost = fees # 기본시간, 기본요금, 단위시간, 단위요금 array1 = dict() # 차량번호, 누적 시간 array2 = dict() # 차량번호, 입차 시각 for record in records: time, num, action = record.split() # 시간, 차량번호, 내역 time = int(time[0:2]) * 60 + int(time[3:]) num = int(num) if num not in array1.keys(): array1[num] = 0 if action =.. 2022. 1. 16.
[23회차] n^2 배열 자르기 Programmers Level.2 n^2 배열 자르기 def solution(n, left, right): arr = [] for i in range(n): for j in range(n): arr.append(max(i, j) + 1) answer = arr[left : right + 1] return answer - 시간초과나서 실패. def solution(n, left, right): arr = [0] * (n * n) for i in range(n): for j in range(n): arr[i * n + j] = max(i, j) + 1 answer = arr[left : right + 1] return answer - append를 하는게 시간 초과의 원인일 것 같아서 미리 n^2 크기의 .. 2022. 1. 13.
[22회차] 파일명 정렬 Programmers Level.2 파일명 정렬 def solution(files): word_list = [['',0,''] for _ in range(len(files))] # HEAD, NUMBER, ORIGINAL WORD로 나누어 저장 for num, file in enumerate(files): head = -1 number = len(file) for a, b in enumerate(file): if b.isdigit() and head == -1: head = a if head != -1 and not b.isdigit() and number == len(file): number = a word_list[num] = [file[:head].upper(), int(file[head:numbe.. 2022. 1. 11.
[21회차] 프렌즈 4블록 Programmers Level.2 프렌즈 4블록 def check(r, c, array): # array의 r행 c열이 지워지는 블록인지 판단 if array[r][c] == array[r+1][c] and array[r][c] == array[r][c+1] and array[r][c] == array[r+1][c+1]: return True def solution(m, n, board): # m * n size board answer = 0 array = [[''] * m for _ in range(n)] # board를 시계방향으로 90 회전하여 n * m size array로 만들자 for i in range(m): for j in range(n): array[j][m - 1 - i] = boar.. 2022. 1. 4.