본문 바로가기

반응형

python3

[백준] Fly me to the Alpha Centauri 문제_ https://www.acmicpc.net/problem/1011 골드V 풀이_ N광년일 때 이동 경로를 그리고, 이동 회수를 표로 그리면 다음과 같다. 광년 이동 경로 이동 횟수 2 11 2 o 3 121 3 o 4 121 3 | 5 1211 4 o 6 1221 4 | 7 12211 5 o 8 12221 5 | 9 12321 5 | 10 123211 6 o 11 123221 6 | 12 123321 6 | 13 1233211 7 o 14 1233221 7 | 15 1233321 7 | 16 1234321 7 | 17 12343211 8 o 3 이후의 늘어난 구간을 살펴보면 5 7 10 13 17이 있다. 이 수들의 이전 숫자는 4 6 9 12 16. 잘 보면 4 9 16은 제곱수임을 알 수 있고.. 더보기
[백준] 설탕 배달 문제_ https://www.acmicpc.net/problem/2839 실버 IV 풀이_ 3kg봉지보다는 되도록 5kg봉지를 쓰는 게 무조건 적은 개수가 된다. 예: 15kg 설탕은 3kg로 배달하면 5개가 나오지만, 5kg로 배달하면 3봉지로 나온다 5kg로 담을 수 없는 경우, 3kg봉지를 이용해 담도록 한다. 8kg를 넘어가면 모든 수를 5kg와 3kg로 표현이 가능하다. (1=5x2-3x3, 2=5-3) 즉 5kg로 최대한 담고 남은 게 있으면 5kg 봉지를 줄여가며 3kg으로 표현이 가능한지 확인한다. 지금 시점에서 최선의 선택을 하다: Greedy n = int(input()) def solution(n): return -1 if n < 8 and not(n % 3 == 0 or n % 5 .. 더보기
[프로그래머스] 시소 짝꿍 문제_ https://school.programmers.co.kr/learn/courses/30/lessons/152996 레벨2 풀이_ 두 명이 각각 시소에 앉아, 평형을 이루는지를 확인 무게가 각각 x y이고 위치가 각각 a b라고 할 때, 평형상태일 수 있는 조건: x * a = y * b 즉 y의 무게는 x * a / b x의 무게를 알고 있을 때 y의 무게를 구하려면 a와 b에 값을 일일이 넣어보아야 한다. x와 y를 각각 집어 계산을 진행해야하므로, O(n^2) 2에서 구한 y의 무게는 정수여야 하며, weights의 안에 있어야 한다. weights를 탐색하는 시간을 줄이면 O(n) 시간에 계산이 가능 상수 시간에 검색할 수 있도록 weights의 값을 보관하는 map 생성 { 몸무게: 해당.. 더보기
[프로그래머스] 124 나라의 숫자 문제_ https://school.programmers.co.kr/learn/courses/30/lessons/12899 레벨2 풀이_ 1, 2, 4 3개의 수를 이용한다. -> 3진법 3진법과 달리 3은 자릿수를 바꾸지 않고 4로 표현한다. -> 3은 4로, 6은 14로, 9는 24로 표현 n % 3 = 1은 1, n % 3 = 2는, 그리고 n % 3 = 0는 4로 표현된다 -> [4, 1, 2] 배열의 인덱스가 3으로 나눈 나머지. 배열의 값이 나머지가 나타내는 숫자 3의 배수의 경우, 자릿수를 바꾸지 않고 같은 자릿수로 표현해야 한다 -> 다음 숫자를 구할 때 3으로 나누어 떨어지지 않게, 1을 뺀 값을 나눔 def solution(n): digits = ('4', '1', '2') answer .. 더보기