본문 바로가기

Algorithm78

[백준 알고리즘] C++ | 2669번 직사각형 네개의 합집합의 면적 구하기 https://www.acmicpc.net/problem/2669 2669번: 직사각형 네개의 합집합의 면적 구하기 입력은 네 줄이며, 각 줄은 직사각형의 위치를 나타내는 네 개의 정수로 주어진다. 첫 번째와 두 번째의 정수는 사각형의 왼쪽 아래 꼭짓점의 x좌표, y좌표이고 세 번째와 네 번째의 정수는 사각 www.acmicpc.net - 문제 - 제출한 코드 #include int arr[100][100] = { 0 }; int main() { int a; int b; int c; int d; int sum = 0; for (int i = 1; i 2022. 6. 15.
[백준] 2231번: 분해합(브루트포스) - Python https://www.acmicpc.net/problem/2231 2231번: 분해합 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 www.acmicpc.net [문제유형] - 브루트포스 [문제] [제출한 코드 및 풀이] - n을 입력받고, n의 가장 작은 생성자를 구해야 하기 때문에 minNum이라는 변수를 만들었다. - 자연수 n의 범위인 길이만큼 반목하게 해주고 1부터 시작되도록 범위를 지정했다. - 리스트를 만들어줘야하니 i를 문자열 형태로 바꿔주고 i + sum(arr) 한 값. 즉, i가 198 일경우 198 + (.. 2022. 3. 7.
[백준] 2798번: 블랙잭(브루트포스) - Python https://www.acmicpc.net/problem/2798 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net [문제유형] - 브루트포스 [문제] [제출한 코드 및 풀이] - 지난번에 combination(조합)을 사용했던적이 있는데, 그 당시와 비슷한 방식으로 풀어야할 것 같아서 사용했다. - n, m을 입력받고 그 다음줄에 입력 받은 숫자들을 numbers로 한 번에 담았다. - 각 조합 중 합계가 가장 큰 숫자를 출력해야하니까 maxNum이라는 변수를 만들어줬다. - .. 2022. 3. 7.
[백준] 11399번: ATM(그리디 알고리즘) - Python https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net [문제유형] - 그리디 알고리즘 [문제] [제출한 코드 및 풀이] 1차시도(사유: 오답) - 아래와 같이 코드 구현 후 출력은 제대로 됐는데 오답처리가 되었다. - 뭔가 입력 받는 과정에서 오답 처리가 된 것 같은 느낌.. n = int(input()) seq = input().split(" ") seq.sort() sum = 0 for i in range(1, len(seq)+1): for j in range(1, i+1):.. 2022. 3. 3.
[백준] 11047번: 동전 0(그리디 알고리즘) - Python https://www.acmicpc.net/problem/11047 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net [문제유형] - 그리디 알고리즘 [문제] [제출한 코드 및 풀이] - 그리디 알고리즘의 대표적인 문제이고 이번 문제는 크게 어렵지 않아 일부 라인에 코드로 주석을 달아뒀다. - 효율을 위해 moneyList를 큰 금액부터 내림차순 정렬되도록 해두고 해당 리스트를 돌면서 k의 몫과 나머지를 구해서 k가 0이 될 때까지 해당 과정을 반복.. 2022. 3. 3.
[백준] 1541번: 잃어버린 괄호(그리디 알고리즘) - Python https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net [문제유형] - 그리디 알고리즘 [문제] [제출한 코드 및 풀이] - 값을 최소로 만들기 위해서는 예제에서 - 를 만날 경우 다음 - 까지를 괄호로 묶어야 한다. - 그러기 위해서 input을 받으며 -를 기준으로 분리시킨다. ex) ["50", "50+40"] - formula의 0번째 리스트 값을 answer에 계속 더해준다. (-를 만나기 전까지) - 그 이후 formula의 1번째 리.. 2022. 3. 3.