본문 바로가기
728x90

알고리즘/[python] 백준 BOJ328

[python] 백준 1940 주몽 https://www.acmicpc.net/problem/1940 1940번: 주몽 첫째 줄에는 재료의 개수 N(1 ≤ N ≤ 15,000)이 주어진다. 그리고 두 번째 줄에는 갑옷을 만드는데 필요한 수 M(1 ≤ M ≤ 10,000,000) 주어진다. 그리고 마지막으로 셋째 줄에는 N개의 재료들이 가진 고 www.acmicpc.net 문제 해결 두 수의 합이 특정한 수(m)이 되야함. 리스트를 올림차순으로 정렬하고 투포인터를 이용해 두 수의 합을 구한다. 두 수의 합이 m보다 크면 오른쪽 포인터를 왼쪽으로 옮긴다. 두 수의 합이 m보다 작으면 왼쪽 포인터를 오른쪽으로 옮긴다. 두 수의 합이 m과 같으면 정답 ans를 1을 올리고 왼쪽 포인터를 오른쪽으로 한 칸, 오른쪽 포인터를 왼쪽으로 한 칸 옮겨서 .. 2023. 2. 18.
[python] 백준 14225 부분수열의 합 https://www.acmicpc.net/problem/14225 14225번: 부분수열의 합 수열 S가 주어졌을 때, 수열 S의 부분 수열의 합으로 나올 수 없는 가장 작은 자연수를 구하는 프로그램을 작성하시오. 예를 들어, S = [5, 1, 2]인 경우에 1, 2, 3(=1+2), 5, 6(=1+5), 7(=2+5), 8(=1+2+5)을 만들 www.acmicpc.net 문제 해결 중간에 빠진 수를 어떻게 구할 것인가?: 우선은 sort()를 통해 작은수부터 놓는 것이 우선일 것이다. 맨 앞의 수는 1일 것이다. 두 번째 수는 2가 와도 되고 1이 추가로 와도 된다. 두 번째 수가 1이면 세 번째는 3이하의 수가 올 것이다. (1, 2, 3 모두 가능하다는 것이다.) 두 번째 수가 2이면 세 번째.. 2023. 2. 10.
[python] 백준 1339 단어 수학 https://www.acmicpc.net/problem/1339 1339번: 단어 수학 첫째 줄에 단어의 개수 N(1 ≤ N ≤ 10)이 주어진다. 둘째 줄부터 N개의 줄에 단어가 한 줄에 하나씩 주어진다. 단어는 알파벳 대문자로만 이루어져있다. 모든 단어에 포함되어 있는 알파벳은 최대 www.acmicpc.net 문제 해결 모든 알파벳에 1을 대입 했을 때 자리수를 고려하여 큰 수부터 차례대로 9부터 1까지 넣으면 될 것이다. ex) ABA + ABCA : A = 101+1001 = 1102, B = 10+100 = 110, C = 10 A = 9대입 B = 8 대입, C = 7대입 CODE import sys n = int(input()) # 단어 개수 S = [] # 단어를 저장할 리스트 M = .. 2023. 2. 8.
[python] 백준 11721 열 개씩 끊어 출력하기 https://www.acmicpc.net/problem/11721 11721번: 열 개씩 끊어 출력하기 첫째 줄에 단어가 주어진다. 단어는 알파벳 소문자와 대문자로만 이루어져 있으며, 길이는 100을 넘지 않는다. 길이가 0인 단어는 주어지지 않는다. www.acmicpc.net 문제 해결 사실 굉장히 쉬운 문제 그러나 10개씩 문자열을 끊어서 처리하는 방법은 많은데 가장 간단하게 처리하는 것은 중요하다 그냥 10칸씩 인덱스를 움직이는 방법- for문에 10칸씩 인덱스를 움직이는 것을 바로 생각하는 것이 중요하다 생각. CODE import sys A = str(input()) for i in range(0,len(A),10): print(A[i:i+10]) 2023. 2. 5.
728x90