코드리뷰(127)
-
★[python_파이썬_Pass]백준_2512번_예산_이분탐색_풀이
공부하는허딩크 : https://www.youtube.com/live/NQxG_GQn54s?feature=shared 와 어렵다.고민 많이 했다.M이 10억이 최대치니까 아래의 코드는 시간초과가 날 것으로 예상했다.#일단 상한액 밑으로는 모두 지급 후 상한액 이상인 것들은 상한액으로 고정#그럼 budget을 다 더한 후 M과 비교해서 budget이 크면 max(budget) = 상한액 - 1을 계속 한다."""시간초과"""import sysinput = sys.stdin.readlineN = int(input())budget = list(map(int, input().split()))M = int(input())def budgets(data, M): adjust = max(data) while..
2024.09.19 -
이 부분 다시리뷰 필요[python_파이썬_Pass]백준_10816번_수찾기_이분탐색_풀이
공부하는허딩크 : https://www.youtube.com/live/YUFXMQL1DWY?feature=shared 이전에 2번 맞은 건 일단 넘어가고 가장 효율적인 코드라고 생각되는 방향으로 만들었다.기존 다른 문제에서는 비슷하게 되었는데 핵심은 N_nums를 집합(set)으로 하면 되지만, count를 지원하지 않으며,중복되는 숫자들의 개수를 구해야 하기 때문에 어차피 집합은 불가능하다.import sysinput = sys.stdin.readlineN = int(input())N_nums = list(map(int, input().split()))M = int(input())M_nums = list(map(int, input().split()))for i in M_nums: print(N_n..
2024.09.14 -
[python_파이썬_Pass]백준_10815번_숫자카드_이분탐색_풀이
공부하는허딩크 : https://www.youtube.com/live/YUFXMQL1DWY?feature=shared이전에 해시를 이용한 방법으로 해결했으나 이진탐색 및 해시등 여러가지를 학습한 후 다시 풀어보았다.학습내용 : https://heodinkcodingdiary.tistory.com/104 [python_파이썬_Pass]백준_1920번_수찾기_이분탐색_풀이공부하는허딩크 : https://www.youtube.com/live/YUFXMQL1DWY?feature=shared 일단 딱 봐도 쉬운 문제였다. 간단한 for문과 if문으로 작성했는데 시간초과....시간 복잡도리스트 탐색에서 M_nums의 각 요소에 대해heodinkcodingdiary.tistory.com 다른거 다 필요 없이 set..
2024.09.14 -
★[python_파이썬_pass]백준_1072번_게임_이분탐색_풀이
공부하는허딩크 : https://www.youtube.com/live/5TQ9cxVHNk0?feature=shared처음 이진탐색을 해결할때 대략적인 형태를 보고 처음 문제를 접했다... 근데 역시나 활용하기에는 내 실력이 많이 부족했다. 방향은 그래도 근접하게 접근을 했다.1. 일단 승률 Z를 구한다.2. data를 Y부터 X까지 나오게 리스트를 만든다.3. Z(target)과 data를 함수 요소로 넣어서 실행한다.4. mid를 구한다.5. 신규 x, y를 구한 후 다시 승률을 만들어서 기존 Z와 비교한다. ㄴ 다르면 end = mid - 1 ㄴ 같으면 start = mid + 1그런데 답이 이상하게 나온다.....import sysinput = sys.stdin.readlineX, Y = m..
2024.09.13 -
[python_파이썬_Pass]백준_1259번_팰린드롬수_구현_풀이
공부하는허딩크 : https://www.youtube.com/live/AgMXuQAl4JE?feature=shared※회사 점심시간 활용map으로 한번에 받으면 1개의 변수만 저장된다.따라서 ''.join을 활용해서 입력받은 정수를 하나씩 분해해서 list로 만들어 준다.문자열 역순은 [-1::-1]로 만들었는데 [::-1]이 가장 간단하고 직관적이며, 성능도 좋다.reversed()함수를 사용해도 된다. sort(), sorted()와 비슷함.for문을 사용해서 reversed_string = char + reversed_string이렇게 해주면 abc가 cba로 된다.stack을 사용할 수도 있다.string = "example" stack = list(string) reversed_string = ..
2024.09.13 -
★[python_파이썬_Pass]백준_15829번_Hashing_구현/해싱_풀이
공부하는허딩크 : https://www.youtube.com/live/AgMXuQAl4JE?feature=shared※회사 점심시간 활용 일단 시그마, mod같은 용어들이 낯설다.시그마는 뭐 모든 합계인걸 알겠으나 mod는 처음 보는 것 같다.밑에 힌트가 있다. 즉, 주어진 알파벳의 고유 번호와 인덱스를 활용해서 a(고유번호로 변경) * 31 ** index의 sum을 하면 될 것 같다. string 모듈을 처음 써봤다.string.ascil_lowercase를 사용하면 a-z까지 문자열을 만들 수 있다. (string.ascil_uppercase, string.ascil_letters등이 있다.)※sring.ascil_letters는 a-z, A-Z까지 순서대로 포함하는 문자열이다. filter작업할때..
2024.09.13