본문 바로가기

백준36

[백준/파이썬] 1436: 영화감독 숌 https://www.acmicpc.net/problem/1436 문제 요약 : 666이 연속으로 들어가는 수를 '종말의 수'라고 칭한다. N이 주어졌을때 N번째로 작은 종말의 수를 구하라.  예제 입력5 :500 예제 출력 5:166699 📌 풀이  1  - 브루투 포스 )잠이 와서 생각이 안나는건지, 아니면 정말 하나하나 다 돌려봐야하는 건지 감이 안 잡혀서 무작정 숫자를 나열해보았다.666 1666 2666 3666 4666 5666 6660 6661 6662 6663 6664 ... 66697666 ... 9666 10666 11666 ... 16660 16661 ... 16669 별 규칙없어보이는 숫자들, 그리고 문제에서 제시한 N의 숫자가 10,000보다 작거나 같다는 제한을 보았을 때 브.. 2024. 5. 28.
[백준/파이썬] 2231: 분해합 https://www.acmicpc.net/problem/2231 문제 요약 : 자연수 N의 분해합이 주어질 때, N의 가장 작은 생성자를 찾아라M+ M의 각 자리수의 합 = N  -> M을 N의 생성자라고 함예를들어 245의 분해합은 256(= 245 + 2 + 4 + 5) 이므로 245는 256의 생성자  예제 입력1 :216 예제 출력 1:198 📌 풀이 )1부터 N까지 반복하면서 각 숫자 i에 대해 분해합을 계산한다.분해합과 i(원래 숫자)를 더하여 N과 같으면 i를 반환한다.모든 숫자를 검사해도 생성자가 존재하지 않으면 0을 반환한다. 이 코드는 1부터 N까지 모든 수를 검사하기때문에 최악의 경우 시간복잡도는 O(N)이다. N의 최대값이 1000,000이므로 가능한 코드이다.def result.. 2024. 5. 27.
[백준/파이썬] 4153: 직각삼각형 https://www.acmicpc.net/problem/4153 문제 요약 : 주어진 세 변의 길이로 삼각형이 직각삼각형인지 아닌지 판별하는 문제마지막 입력은 "0 0 0"으로 주어짐 예제 입력1 :6 8 1025 52 605 12 130 0 0 예제 출력 1:rightwrongright 📌 풀이 )is_right_triangle(a, b, c) 함수는 세 변의 길이 a, b, c를 받아서 직각 삼각형인지 여부를 판별한다.세 변의 길이를 리스트로 만들어 오름차순으로 정렬한다. 이렇게 하면 가장 긴 변이 리스트의 마지막에 온다.피타고라스 정리를 이용하여 앞 두요소의 제곱합이 마지막 요소의 제곱과 같은지 확인한다.def is_right_triangle(a, b, c): sides = sorted([.. 2024. 5. 27.
[백준/파이썬] 2798: 블랙잭 https://www.acmicpc.net/problem/2798 문제 요약 : N장의 카드 중에서 3장의 카드를 골라 그 합이 M을 넘지 않으면서 최대한 M과 가깝게 만들어라  예제 입력1 :5 215 6 7 8 9 예제 출력 1:21 📌 풀이 )  3중 반복문을 사용하여 조합을 탐색하였다.인덱스가 겹치지 않도록 i,j,k는 순서대로 증가한다. 이 조합으로 합이 M을 넘지않으면, max_sum에 넣어준다. 이때, 그전에 들어간 값과 비교하여 그 전값보다 클 경우에만 max_sum이 갱신된다. 3중 반복문을 사용하지만, 카드수 N이 작기 때문에(100이하) 풀 수 있는 문제이다.def blackjack(N, M, cards): max_sum = 0 # 모든 가능한 3장 카드 조합을 탐색 .. 2024. 5. 27.
[백준/파이썬] 1358: 하키 https://www.acmicpc.net/problem/1358 문제 요약 :하키 링크는 가로 길이가 W이고 세로 길이가 H인 직사각형과, 각 반지름이 H/2인 두 개의 원으로 이루어져 있음직사각형의 왼쪽 아래 모서리 좌표는 (X,Y)두 원의 중심은 각각 (X,Y+H/2)와 (X+W,Y+H/2)  예제 입력1 :20 10 5 0 315 51 51 1 예제 출력 1:2 📌 풀이  )1. 직사각형 안에 있는지 확인한다.2. 왼쪽 반원 안에 있는지 확인한다.3. 오른쪽 반원 안에 있는지 확인한다.def is_inside_rink(W, H, X, Y, a, b): # 직사각형 if X 2024. 5. 27.