분류 전체보기
-
문제 2원, 5원짜리를 사용해 N원을 만들 때, 최소 동전의 개수 리턴하기 N원을 만들 수 없다면 -1 리턴하기 1
[백준] 14916 거스름돈문제 2원, 5원짜리를 사용해 N원을 만들 때, 최소 동전의 개수 리턴하기 N원을 만들 수 없다면 -1 리턴하기 1
2023.08.16 -
문제 크기가 5 by 3인 행렬 A, 크기가 3 by 10인 행렬 B, 크기가 10 by 6인 행렬 C가 있을 때, 순서대로 A와 B를 먼저 곱하고, 그 결과에 C를 곱하면 A와 B행렬을 곱할 때 150번을, AB 에 C를 곱할 때 300번을 연산을 해서 총 450번의 곱하기 연산을 한다. 행렬이 N개 주어질 때, 모든 행렬을 곱하기 위한 최소 곱셈 연산의 수를 리턴하기 3 = n : break # 범위를 벗어나는 경우 if d == 1 : # 첫 번째 행렬 곱셈이 된 경우 dp[i][j] = M[i][0] * M[i][1] * M[j][1] else : candidates = [] # 모든 경우의 수를 구한 뒤 최솟값 찾기 for k in range(d) : # i ~ i+k 행렬까지 최소의 곱셈연산 ..
[프로그래머스] 최적의 행렬 곱셈문제 크기가 5 by 3인 행렬 A, 크기가 3 by 10인 행렬 B, 크기가 10 by 6인 행렬 C가 있을 때, 순서대로 A와 B를 먼저 곱하고, 그 결과에 C를 곱하면 A와 B행렬을 곱할 때 150번을, AB 에 C를 곱할 때 300번을 연산을 해서 총 450번의 곱하기 연산을 한다. 행렬이 N개 주어질 때, 모든 행렬을 곱하기 위한 최소 곱셈 연산의 수를 리턴하기 3 = n : break # 범위를 벗어나는 경우 if d == 1 : # 첫 번째 행렬 곱셈이 된 경우 dp[i][j] = M[i][0] * M[i][1] * M[j][1] else : candidates = [] # 모든 경우의 수를 구한 뒤 최솟값 찾기 for k in range(d) : # i ~ i+k 행렬까지 최소의 곱셈연산 ..
2023.08.16 -
문제 작업의 요청부터 종료까지 걸린 시간의 평균의 최솟값 리턴하기 (소수점 이하 버림) 각 작업에 대해 [요청되는 시점, 작업 소요시간]이 주어진다. 1
[프로그래머스] 디스크 컨트롤러문제 작업의 요청부터 종료까지 걸린 시간의 평균의 최솟값 리턴하기 (소수점 이하 버림) 각 작업에 대해 [요청되는 시점, 작업 소요시간]이 주어진다. 1
2023.07.24 -
문제 학생들의 인적사항이 주어졌을 때 후보 키의 최대 개수 구하기 1 [(1, 3), (2, 3)] 중 길이가 3인 후보키 찾기 결국 중복을 완벽하게 제어하는 방법을 못찾아서 전체 컬럼 조합에서 최소성을 만족하지 못하는 키를 제거함 from collections import deque from itertools import combinations # 유일성 확인 (해당 키 조합의 데이터가 단 하나 존재하는지 확인) def unique(cand, relation) : tmp = dict() for r in relation : key = " ".join([r[i] for i in cand]) if key in tmp : return False else : tmp[key] = 1 return True # 최소..
[2019 KAKAO BLIND RECRUITMENT] 후보키문제 학생들의 인적사항이 주어졌을 때 후보 키의 최대 개수 구하기 1 [(1, 3), (2, 3)] 중 길이가 3인 후보키 찾기 결국 중복을 완벽하게 제어하는 방법을 못찾아서 전체 컬럼 조합에서 최소성을 만족하지 못하는 키를 제거함 from collections import deque from itertools import combinations # 유일성 확인 (해당 키 조합의 데이터가 단 하나 존재하는지 확인) def unique(cand, relation) : tmp = dict() for r in relation : key = " ".join([r[i] for i in cand]) if key in tmp : return False else : tmp[key] = 1 return True # 최소..
2023.07.22 -
문제 관리자가 보게 될 메세지를 문자열 배열 형태로 리턴하기 채팅방에 누군가 들어오거나 나갈 때 메세지가 출력된다. 닉네임을 변경하면 기존 채팅방에 출력되어 있던 메세지의 닉네임도 전부 변경된다. 1
[2019 KAKAO BLIND RECRUITMENT] 오픈 채팅방문제 관리자가 보게 될 메세지를 문자열 배열 형태로 리턴하기 채팅방에 누군가 들어오거나 나갈 때 메세지가 출력된다. 닉네임을 변경하면 기존 채팅방에 출력되어 있던 메세지의 닉네임도 전부 변경된다. 1
2023.07.21 -
문제 실패율이 높은 스테이지를 내림차순으로 리턴하기 실패율 = 스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 수 / 스테이지에 도달한 플레이어 수 만약 실패율이 같은 스테이지가 있다면 작은 번호의 스테이지가 먼저 스테이지에 도달한 유저가 없는 경우 해당 스테이지의 실패율은 0으로 정의 단, N + 1 은 마지막 스테이지(N 번째 스테이지) 까지 클리어 한 사용자를 나타낸다. 1
[2019 KAKAO BLIND RECRUITMENT] 실패율문제 실패율이 높은 스테이지를 내림차순으로 리턴하기 실패율 = 스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 수 / 스테이지에 도달한 플레이어 수 만약 실패율이 같은 스테이지가 있다면 작은 번호의 스테이지가 먼저 스테이지에 도달한 유저가 없는 경우 해당 스테이지의 실패율은 0으로 정의 단, N + 1 은 마지막 스테이지(N 번째 스테이지) 까지 클리어 한 사용자를 나타낸다. 1
2023.07.21