전체 글
-
[백준] 2231번: 분해합(브루트포스) - PythonAlgorithm 2022. 3. 7. 18:10
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 + (..
-
[백준] 2798번: 블랙잭(브루트포스) - PythonAlgorithm 2022. 3. 7. 18:09
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이라는 변수를 만들어줬다. - ..
-
TIL | Mar 4(FRI), 2022Developer blah blah/TIL _ WIL 2022. 3. 4. 19:48
👉TODAY 1. 09:30 기상 2. 백준 알고리즘 11399, 1436 문제 풀기 3. TypeScript 공부 4. 20:00 알고리즘 팀 스터디 🔨What I Learned? 📚 1. 소프트웨어 개발 생명 주기(SDLC) 2. 소프트웨어 설계 원칙 (SOLID) 🧙♂️Reivew 오늘은 소프트웨어 공학에 대해서 찾아봤다. SOLID 라고 몇 번 들어봤고 중요하다고 알고 있는데, 그동안 그냥 '솔리드'라고 인식만 하고 넘어갔었다. 포스팅이 완성되는대로 업로드 해야지!! 이번 주말은 쉽니다-
-
[백준] 11399번: ATM(그리디 알고리즘) - PythonAlgorithm 2022. 3. 3. 23:25
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):..
-
[백준] 11047번: 동전 0(그리디 알고리즘) - PythonAlgorithm 2022. 3. 3. 11:40
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이 될 때까지 해당 과정을 반복..
-
[백준] 1541번: 잃어버린 괄호(그리디 알고리즘) - PythonAlgorithm 2022. 3. 3. 11:39
https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net [문제유형] - 그리디 알고리즘 [문제] [제출한 코드 및 풀이] - 값을 최소로 만들기 위해서는 예제에서 - 를 만날 경우 다음 - 까지를 괄호로 묶어야 한다. - 그러기 위해서 input을 받으며 -를 기준으로 분리시킨다. ex) ["50", "50+40"] - formula의 0번째 리스트 값을 answer에 계속 더해준다. (-를 만나기 전까지) - 그 이후 formula의 1번째 리..
-
[백준 알고리즘] 11279번: 최대 힙(우선순위 큐) - PythonProgramming Language/Python 2022. 3. 1. 10:38
https://www.acmicpc.net/problem/11279 11279번: 최대 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 www.acmicpc.net [문제] [제출한 코드 및 풀이] 실패코드(시간초과 1) - stack이라는 리스트를 만들어두고 x를 입력 받으면 항상 sort를 해준다. - x가 0일 때, stack의 길이가 0일 경우 0을 출력하고 길이가 0이 아닐 경우 stack의 가장 큰 값을 출력 후 stack에서 제거한다. - x가 0이 아닐 때, stack에 x를 추가한다. 실패코드(시간초과 2) - 일단 여기서..
-
[백준 알고리즘] 10773번: 제로(스택) - PythonAlgorithm 2022. 2. 28. 14:31
https://www.acmicpc.net/problem/10773 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net [문제] [제출한 코드 및 풀이] - input()을 통해 k와 k만큼의 숫자 num을 입력 받음 - num이 0일 경우 stack에서 pop(마지막 값 제거)을 하고 0이 아니면 num을 stack에 append() 함 * append()는 push()와 같은 기능을 하여, 리스트의 가장 마지막에 객체로 추가하는 기능 수행 - 마지막에 stack의 합계를 계산하..