분류 전체보기
-
[백준] 20115번 에너지 드링크Algorithm Study/Python 2024. 3. 4. 00:49
https://www.acmicpc.net/problem/20115 20115번: 에너지 드링크 페인은 에너지 드링크를 좋아하는 회사원이다. 에너지 드링크는 카페인, 아르기닌, 타우린, 나이아신 등의 성분이 들어있어 피로 회복에 도움을 주는 에너지 보충 음료수이다. 야근을 마치고 한 www.acmicpc.net 풀이 에너지 드링크가 가장 많은 양이될 수 있게 절반을 버리기 위해서는 항상 적은쪽을 버리면 된다. 가장 많은쪽을 버리지만 초기에 가장 많이 담겨있던 에너지 드링크를 버리지 않는 경우가 가장 적게 버리기 때문에 역순으로 정렬하여 풀었다. energys = list(map(int, input().split())) energys.sort(reverse = True) energys = deque(ene..
-
[백준] 1436번 영화감독 숌Algorithm Study/Python 2024. 2. 27. 22:17
https://www.acmicpc.net/problem/1436 1436번: 영화감독 숌 666은 종말을 나타내는 수라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타워 www.acmicpc.net 풀이 666이 들어간 숫자를 찾아서 해당 숫자가 몇번째인지 찾으면 되는 문제이다. 가장 단순하게 666(첫 등장)부터 1씩 증가하면서 666이 포함되어있는지 확인해서 풀었다. 전체 코드 N = int(input()) count = 0 for i in range(666, 100000000): if '666' in str(i): count += 1 if count == N: print(i) brea..
-
[백준] 2231번 분해합Algorithm Study/Python 2024. 2. 27. 22:12
https://www.acmicpc.net/problem/2231 2231번: 분해합 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 www.acmicpc.net 풀이 이 문제도 다양한 풀이 방법이 있을 수 있어 가장 직관적인 풀이와 시간을 단축시킬 수 있는 풀이로 구현해봤다. 1. 기본적으로 분해합을 처음 숫자 + 각 자릿수로 구현했기 때문에 해당 방법으로 직관적으로 구현할 수 있다. 숫자의 범위가 100만이기 때문에 문제 없이 풀 수 있다. N = int(input()) answer = 0 for i in range(1, N..
-
[백준] 2979번 트럭 주차Algorithm Study/Python 2024. 2. 27. 22:02
https://www.acmicpc.net/problem/2979 2979번: 트럭 주차 첫째 줄에 문제에서 설명한 주차 요금 A, B, C가 주어진다. (1 ≤ C ≤ B ≤ A ≤ 100) 다음 세 개 줄에는 두 정수가 주어진다. 이 정수는 상근이가 가지고 있는 트럭이 주차장에 도착한 시간과 주차장 www.acmicpc.net 풀이 특정 시간에 몇 대의 트럭이 주차되어있는지 알 수 있으면 계산하기 쉬운 문제이다. 시간 범위가 1 ~ 100까지기 때문에 100까지의 리스트를 미리 생성한 뒤, 입력으로 받은 범위에 차량이 있다는 것을 표시해주고 금액을 계산하면 된다. 전체 코드 A, B, C = map(int, input().split()) time_list = [0 for _ in range(101)]..
-
[백준] 2309번 일곱난쟁이Algorithm Study/Python 2024. 2. 26. 11:51
https://www.acmicpc.net/problem/2309 2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net 풀이 입력으로 받는 9개의 숫자 중 7개의 합이 100이 되게 구해야한다. 이 경우에는 조합을 사용하여 9개 중 7개를 추출하여 모든 조합에 대하여 계산하면 쉽게 구할 수 있다. 9C7은 36으로 모두 확인한다고해도 많은 시간이 소요되지 않는다. import itertools data = [] for i in range(9): data.append(int(input())) data.sort() data_c..
-
[백준] 1159번 농구 경기Algorithm Study/Python 2024. 1. 28. 21:48
https://www.acmicpc.net/problem/1159 1159번: 농구 경기 상근이는 농구의 세계에서 점차 영향력을 넓혀가고 있다. 처음에 그는 농구 경기를 좋아하는 사람이었다. 농구에 대한 열정은 그를 막을 수 없었고, 결국 상근이는 농구장을 청소하는 일을 시작 www.acmicpc.net 풀이 입력받은 리스트를 정렬하여 연속으로 5개 이상 나오는 경우 답에 추가하는 방식으로 구현하려고 했으나 반복문을 돌리면서 본인 첫글자에 해당하는 index에 1씩 더해주는 방법이 더 쉬울 것 같아서 해당 방법으로 구현했다. N = int(input()) data = [] for i in range(N): data.append(input()) N을 입력받은 뒤 N번 반복을 시켜 여러 데이터를 입력 받았다..
-
[백준] 10988번 팰린드롬인지 확인하기Algorithm Study/Python 2024. 1. 28. 21:32
https://www.acmicpc.net/problem/10988 10988번: 팰린드롬인지 확인하기 첫째 줄에 단어가 주어진다. 단어의 길이는 1보다 크거나 같고, 100보다 작거나 같으며, 알파벳 소문자로만 이루어져 있다. www.acmicpc.net 풀이 팰린드롬이란 앞으로 읽을 때와 거꾸로 읽을 때 똑같은 단어를 말한다. 다양한 해결책이 있을 수 있다. 뒤집어진 문자열을 만들어서 비교, 양 끝을 비교해서 같으면 잘라낸 뒤 마지막에 남는 길이가 0 또는 1인지 확인 양쪽에서부터 같은 문자인지 확인 등 나는 마지막에 이야기한 양쪽에서부터 문자를 확인하여 같은 문자면 1칸씩 더하고 빼는 방법을 사용해보려고 한다. data = input() answer = 1 for idx in range(len(da..