본문 바로가기

학습 노트/알고리즘 (Python)

(28)
99클럽 - 나이 계산하기 https://www.acmicpc.net/problem/16199아이디어(작성중)풀이birth_year, birth_month, birth_day = map(int, input().split())ref_year, ref_month, ref_day = map(int, input().split())international_age = ref_year - birth_yearif ref_month
99클럽 - 방학 숙제 https://www.acmicpc.net/problem/5532아이디어풀이L = int(input())A = int(input())B = int(input())C = int(input())D = int(input())days_for_korean = (A + C - 1) // Cdays_for_math = (B + D - 1) // Dtotal_homework_days = max(days_for_korean, days_for_math)play_days = L - total_homework_daysprint(play_days)
99클럽 - N개의 최소공배수, 연속 부분 수열 합의 개수 N개의 최소공배수 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr아이디어(작성중)풀이def gcd(x, y): while y: x, y = y, x % y return xdef lcm(x, y): return x * y // gcd(x, y)def solution(arr): answer = arr[0] for num in arr[1:]: answer = lcm(answer, num) return answer 연속 부분 수열 합의 개수 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭...
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..