코드리뷰(127)
-
[python_파이썬_Pass]백준_2577번_숫자의개수_구현_풀이
공부하는허딩크 : https://www.youtube.com/live/AgMXuQAl4JE?feature=shared※회사 점심시간 활용 입력값들을 차례로 곱하는 것을 누적해주고, 해당 Total의 값을 str로 변경 후 각 자리의 숫자를 딕셔너리로 저장하여 해시의 방법을 사용했다.딕셔너리를 초기화 할때 조금 귀찮은 감이 있다.import sysinput = sys.stdin.readlineTotal = 1answer = {0 : 0, 1 : 0, 2 : 0, 3 : 0, 4 : 0, 5 : 0, 6 : 0, 7 : 0, 8 : 0, 9 : 0}for _ in range(3):..
2024.09.11 -
[python_파이썬_Pass]백준_14889번_스타트와 링크_백트레킹_풀이
공부하는허딩크 : https://www.youtube.com/live/L_d3lgvqAlM?feature=shared역시 실버1부터는 문제를 이해하기도 벅차네... import sysimport itertoolsinput = sys.stdin.readline"""아래의 코드는 N = 4일때 가능함 그 이상되면 불가능"""#1. 초기화 및 입력N = int(input())S = []players = [i for i in itertools.combinations(range(1, N + 1), N // 2)]skill = []for _ in range(N): temp = list(map(int, input().split())) S.append(temp)#모든 능력치 skill에 종합 for p..
2024.09.08 -
[python_파이썬Pass]백준_11728번_배열 합치기_투포인터 개념 설명_풀이
공부하는허딩크 : https://www.youtube.com/live/L_d3lgvqAlM?feature=shared일단 투포인터 말고 sorted로 풀었다. import sysinput = sys.stdin.readlineN, M = map(int, input().split())A = list(map(int, input().split()))B = list(map(int, input().split()))answer = A + Bprint(*sorted(answer)) answer.sort()와 sorted(answer)의 시간복잡도는 동일하나, 메모리 효율성 측면에서는 answer.sort()가 원본 데이터를 수정하기 때문에 더 좋다.import sysinput = sys.stdin.readlineN, ..
2024.09.08 -
[python_파이썬_Fail]백준_1789_수들의 합_투포인터, 그리디 알고리즘_풀이
공부하는허딩크 : https://www.youtube.com/live/dnKTEnrL2OM?feature=shared투포인터 알고리즘 쉽게 봤다가 2시간 30분째 해매고 있다. 실버5정도 문제인데 답이 안나오네. 문제를 읽고 모든 경우의 수 itertools로 해결하려고 했는데 파이썬에서도 memoryError가 나오네. 고민하면서도 과연 itertools로 부르트포스 알고리즘 처럼 모든 경우의 수를 한번씩 다 확인하는 작업이어서문제의 범위가 4, 294, 967, 295이므로 안될 걸로 예상했다.import sysimport itertoolsinput = sys.stdin.readline"""N개의 자연수의 합_N의 최댓값"""S = int(input())s = list(i for i in range(..
2024.09.05 -
투포인터 처음 보는데 어렵네_[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