본문 바로가기

Coding Test/Programmers

(122)
[프로그래머스/파이썬] JadenCase 문자열 만들기 나의 풀이 def solution(s): return ' '.join([word.capitalize() for word in s.split(' ')])
[프로그래머스/파이썬] 행렬의 곱셈 나의 풀이 def solution(arr1, arr2): answer = [[0 for i in range(len(arr2[0]))] for j in range(len(arr1))] for y in range(len(arr1)): for x in range(len(arr2[0])): for i in range(len(arr1[0])): answer[y][x] += arr1[y][i] * arr2[i][x] return answer 깔끔한 풀이 def productMatrix(A, B): return [[sum(a*b for a, b in zip(A_row,B_col)) for B_col in zip(*B)] for A_row in A] numpy를 이용한 풀이 import numpy as np def p..
[프로그래머스/파이썬] 하노이의 탑 나의 풀이 (시간 초과) def solution(n): c1 = [0, 1, 3, 2] c2 = [0, 2, 1, 3] dp = [[]] * n dp[0] = [[1,3]] for i in range(1, n): for x in dp[i - 1]: dp[i].append([c1[x[0]], c1[x[1]]]) dp[i].append([1, 3]) for x in dp[i - 1]: dp[i].append([c2[x[0]], c2[x[1]]]) return dp[-1] - 횟수로 이해하고 dp로 해결하고자 했다. 나의 풀이 (재귀) def hanoi(n, a, b, c): if n == 1: return [[a, c]] return hanoi(n - 1, a, c, b) + [[a, c]] + hanoi(..
[프로그래머스/파이썬] 피보나치 수 나의 풀이 def solution(n): a, b = 0, 1 for i in range(1, n): a, b = b, (a + b) % 1234567 return b
[프로그래머스/파이썬] 최솟값 만들기 나의 풀이 def solution(A,B): answer = 0 A.sort() B.sort(reverse=True) for a, b, in zip(A, B): answer += a * b return answer
[프로그래머스/파이썬] 최댓값과 최솟값 나의 풀이 def solution(s): n = sorted(list(map(int, s.split(' ')))) return f'{n[0]} {n[-1]}'
[프로그래머스/파이썬] 주차 요금 계산 나의 풀이 from collections import defaultdict def solution(fees, records): data = defaultdict(list) answer = [] for record in records: time, car, io = record.split(' ') data[car].append(time) for car, record in sorted(data.items()): if len(record) % 2: record.append('23:59') time = 0 for i in range(0, len(record), 2): Hi, Mi = record[i].split(':') Ho, Mo = record[i + 1].split(':') time += (int(Ho) -..
[프로그래머스/파이썬] 줄 서는 방법 나의 풀이 (시간 초과) from itertools import permutations def solution(n, k): return list(permutations(range(1, n + 1), n))[k - 1] 나의 풀이 (최종) def solution(n, k): pool = [i for i in range(1, n + 1)] answer = [] num = 1 k -= 1 for i in range(2, n): num *= i for i in range(n - 1, 0, -1): answer.append(pool[k // num]) pool.remove(pool[k // num]) k %= num num //= i answer.append(pool[0]) return answer - math ..
[프로그래머스/파이썬] 숫자의 표현 나의 풀이 def solution(n): answer = 0 for i in range(1, n + 1, 2): if n % i == 0: answer += 1 return answer 간결한 풀이 def expressions(num): return len([i for i in range(1,num+1,2) if num % i is 0]) 모든 경우의 수에 숫자가 있는지 찾는 풀이 def expressions(num): answer = 0 for i in range(1, num + 1): s = 0 while s < num: s += i i += 1 if s == num: answer += 1 return answer
[프로그래머스/파이썬] 숫자 블록 나의 풀이 def solution(begin, end): answer = [] for n in range(begin, end + 1): if n == 1: answer.append(0) continue for j in range(2, int(n ** 0.5) + 1): if n % j == 0 and n // j

반응형