전체 글(189)
-
투포인터 처음 보는데 어렵네_[python_파이썬_Fail]백준_2003번_수들의 합_투포인터 개념 설명_풀이
공부하는허딩크 : https://www.youtube.com/live/dnKTEnrL2OM?feature=shared 처음 문제를 보고 itertools를 생각했다. 이 전에 백트레킹을 공부하면서 itertools를 계속 봐서 그런지는 모르겠지만, 수열이란 단어를 보고 모든 수열을 뽑아서 더해보면 될 것이라고 생각했다. 예를 들면 itertools로 하면 (1, 2), (1, 3) 이런 조합도 가능하다. 단, 문제의 조건은 연속된 수들의 합이므로 (1, 3)의 조건은 불가능하다. 즉, 정답이 더욱 커진다.즉. itertools로는 불가능하다는 이야기가 나온다. 만약 나온 조합이 연속되지 않은 조건을 추가적으로 걸면 가능하겠지만굳이 그럴 필요 없이 다른 방법을 찾아봤다.itertools로 하려고 했으나 이..
2024.09.05 -
★복습필요[python_파이썬_Half Pass]백준_1182번_부분수열의합_백트래킹_풀이
공부하는허딩크 : https://www.youtube.com/live/H0kM09bxI4I?feature=shared※부분수열의 정의 => 부분수열이라는 조건을 받으면 아래의 조건을 생각해야함.주어진 수열에서 순서를 유지하면서 일부 원소를 선택하여 만든 새로운 수열을 의미한다.1. 순서 유지 : [1, 2, 3]이라면 [2, 1]은 부분수열이 될 수 없다.2. 중복 선택 불가 일단 itertools.combinations로 해결했다.중간에 오류가 있었는데 nums 변수를 받을 때 list()로 만들지 않아서 계속 오류가 났다.list변수를 만들어 줘야 제대호 작동한다.import sysimport itertoolsinput = sys.stdin.readlineN, S = map(int, input().s..
2024.09.02 -
[python_파이썬_Fail_미해결]백준_14888번_연산자 끼워넣기_백트레킹_풀이
공부하는허딩크 : https://www.youtube.com/live/WSAIqn6prZQ?feature=shared총 1시간 이상 고민한 것 같은데 아직 해결을 못했다.어떻게 백 트레킹으로 구현해야하는지도 감이 잡히지 않는다.eval()을 활용해서 연산의 결과 값을 구하는 코드를 작성하였다.※ 이 문제의 조건은 일반적인 연산 법칙을 따르는 것이 아닌 순서대로 연산을 하는게 주요 포인트이다. => 그래서 틀림.#첫번째 시도 : 연산자를 순서대로 계산하는 조건 불만족N = int(input())nums = list(map(int, input().split()))oper_num = list(map(int, input().split()))oper = ["+", "-", "*", "//"]new_oper = [..
2024.08.26 -
[python_파이썬_Pass]백준_2947번_나무 조각_시뮬레이션_풀이
공부하는허딩크 : https://www.youtube.com/live/WSAIqn6prZQ?feature=shared 회사 점심시간을 활용해 해결했다. 마지막 print할때 리스트로 출력하는 기초적인 실수....import sysinput = sys.stdin.readlinenums = list(map(int, input().split()))answer = [1, 2, 3, 4, 5]while nums != answer: for i in range(5 - 1): if nums[i] > nums[i + 1]: x, y = nums[i], nums[i + 1] nums[i], nums[i + 1] = y, x print(nums) ..
2024.08.26 -
[python_파이썬_Pass]백준_1547번_공_시뮬레이션_풀이
공부하는허딩크 : https://www.youtube.com/live/WSAIqn6prZQ?feature=shared 회사 점심시간 사이 2문제 해결. 실제로는 여러 방향으로 시도를 하면서 잘못된 답이 나오고 최종 코드로만 제출을 했다.처음에는 answer[answer.index(X)], answer[answer.index(Y)] = Y, X를 했는데 계속 오류가 나서 곰곰히 생각을 해 보았더니 answer[answer.index(X)] = Y가 먼저 실행되고, 뒤를 이어 answer[answer.index(Y)]가 실행되면 기존 answer가 수정된 상태로 index가 구해지므로 의도치 않은 결과가 나온다는 걸 이해했다.import sysinput = sys.stdin.readlineM = int(in..
2024.08.26 -
[python_파이썬_Pass]백준_15652번_N과 M(4)_백트래킹_풀이
공부하는허딩크 : https://www.youtube.com/live/Q8BKRFH8mW0?feature=shared이번에도 itertools와 재귀함수를 활용해서 해결해보자 라이브러리를 활용하면 정말 깔끔한 코드가 만들어 진다.import sysfrom itertools import combinations_with_replacement as cwrinput = sys.stdin.readlineN, M = map(int, input().split())nums = list(i for i in cwr(range(1, N + 1), M))for num in nums: print(*num) cwr([], 조건)을 어떻게 줄까 조금 고민했으나 중복이 허용되므로 i로 조건을 걸었다.import sysinput..
2024.08.25