본문 바로가기

분류 전체보기

(351)
99클럽 - RGB거리 https://www.acmicpc.net/problem/1149아이디어(작성중)풀이N = int(input())costs = [list(map(int, input().split())) for _ in range(N)]dp = [[0] * 3 for _ in range(N)]dp[0][0] = costs[0][0]dp[0][1] = costs[0][1]dp[0][2] = costs[0][2]for i in range(1, N): dp[i][0] = min(dp[i-1][1], dp[i-1][2]) + costs[i][0] dp[i][1] = min(dp[i-1][0], dp[i-1][2]) + costs[i][1] dp[i][2] = min(dp[i-1][0], dp[i-1][1]) + ..
99클럽 - 진짜 공간 https://www.acmicpc.net/problem/1350아이디어입력된 file_sizes를 순회하며 필요한 클러스터의 수를 계산한다.클러스터 수에 클러스터의 크기를 곱해 필요한 용량을 계산한다.이를 더한다.만약 파일의 크기가 0이라면 과정을 생략한다.풀이n = int(input())file_sizes = list(map(int, input().split()))cluster_size = int(input())total_disk_space = 0for size in file_sizes: if size == 0: continue clusters_needed = (size + cluster_size - 1) // cluster_size total_disk_space += c..
99클럽 - 거리 두기 게임 https://www.acmicpc.net/problem/30052아이디어끝과 끝 사이의 거리가 D보다 작다면 이길 수 없다.각 칸에서 가능한 최대 책시 거리가 D 미만이라면 해당 칸을 차단해야 한다.출력은 차단한 칸들의 집합이다.풀이N, M = map(int, input().split())D = int(input())max_distance_from_edge = (N-1) + (M-1)if max_distance_from_edge
99클럽 - 롤케이크 자르기, 주차 요금 계산 롤케이크 자르기 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr아이디어set과 dict를 사용해 전체 토핑의 종류를 계산할 수 있도록 구현했다.주의해야 할 점은 '토핑의 가짓수'가 같아야 공평한 분배라고 정의하고 있다는 점이다.풀이def solution(topping): total_types_set = set(topping) total_types = len(total_types_set) left_frequency = {} right_frequency = {t: 0 for t in total_types_set} for t in topp..
99클럽 - 역습 3976번: 역습축구에서 역습은 매우 중요한 전술이다. WeissBlume FC는 수비 할 때, 스트라이커 두명을 제외하고는 모두 자기 진영에서 수비를 한다. 이때, 수비수가 상대방의 공을 따게 되면, 스트라이커에게 긴www.acmicpc.net아이디어입력이 매우 복잡하다.c : 테스트 케이스의 수n, l1, l2, s1, s2n : 공격수 좌표의 갯수l1, l2 : 패스 난이도s1, s2 : 슛 난이도1번 선수가 패스하는 데 걸리는 시간1번 선수가 드리블 하는 데 걸리는 시간2번 선수가 패스하는 데 걸리는 시간2번 선수가 드리블 하는 데 걸리는 시간입력을 받고 나서는 선수1과 2가 해당 지점에 도착하는 최소 시간을 도출하고 이 중 작은 값을 최종 결과로 사용한다.풀이c = int(input())resu..
99클럽 - 선택의 기로 30970번: 선택의 기로 첫 번째 줄에는 첫 번째 방법을 선택했을 때의 첫 번째로 고른 촉석루 미니어처의 품질과 가격, 두 번째로 고른 촉석루 미니어처의 품질과 가격을 공백으로 구분하여 순서대로 출력한다. 두 번 www.acmicpc.net 아이디어 정렬 문제이다. 선택 방법은 서로 영향이 없다고 되어있기 때문에 원본을 훼손하지 않는 sorted를 사용했고, 선행 정렬 조건이 중복되는 경우 후행 정렬 조건이 존재하기 때문에 lambda를 사용했다. 풀이 n = int(input()) miniatures = [] for _ in range(n): q, p = map(int, input().split()) miniatures.append((q, p)) first = sorted(miniatures, key..
99클럽 - H-Index, 프로세스 H-Index 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 아이디어 문제 이해가 굉장히 어려웠다. 논문 n 편 중, h번 이상 인용된 논문이 h 편 이상이고 나머지 논문이 h번 이하 인용되었다면 h의 최댓값이 H-index이다. 위 H-index의 설명이 문제인 것 같은데 말을 조금 바꿔 보자면 n편의 논문 중 A번 이상 인용된 논문의 수가 B라면 A와 B 중 작은 값이 H-index이다. 풀이 def solution(citations): citations.sort(reverse=True) n = len(citations) for idx in range..
99클럽 - 제리와 톰1 17504번: 제리와 톰 2 $$ 1 - \cfrac{1}{2 + \cfrac{1}{7 + \cfrac{1}{1 + \cfrac{1}{8}}}} = 1 - \cfrac{1}{2 + \cfrac{1}{7 + \cfrac{8}{9}}} = 1 - \cfrac{1}{2 + \cfrac{9}{71}} = 1 - \cfrac{71}{151} = \cfrac{80}{151} $$ www.acmicpc.net 아이디어 풀이 _ = input() input_string = input() values = list(map(int, input_string.split())) n = 0 d = 1 for val in reversed(values): n, d = d, val * d + n remain = d - n tot = d..
99클럽 - 행렬 테두리 회전하기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 아이디어 풀이 def solution(rows, columns, queries): template = [[y * columns + x + 1 for x in range(columns)] for y in range(rows)] answer = [] for query in queries: y1, x1, y2, x2 = [i - 1 for i in query] min_value = float('inf') top_left = template[y1][x1] # 좌 for y in range(y1, y2): templa..
99클럽 - 큰 수 만들기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 아이디어 단순해 보이지만 거슬리는 조건이 몇 가지 있다. 문제 조건 상 정렬 순서는 유지 돼야한다. number는 2자리 이상, 1,000,000자리 이하인 숫자입니다. 입력이 100만으로 매우 무거운 계산이 예상되기 때문에 경우의 수를 전부 비교할 수 없다. 어떤 값이 작은 값인지 확인하기 위해 정렬을 사용 할 수 없다. 이는 숫자 각각의 크기외에 자릿수 라는 다른 변수가 있기 때문이다. 기본적으로는 앞에서부터 순서대로 훑어가며, 지금 가리키고 있는 숫자가 이전의 숫자보다 크다면 지금 숫자를 이전 숫자 대신..