오늘의 학습 키워드이분탐색백준 11561번 징검다리공부한 내용문제의 핵심각 점프마다 이전 점프보다 최소 1 이상 긴 거리를 뛰어야 함마지막 N번 징검다리는 반드시 밟아야 함최대한 많은 징검다리를 밟는 것이 목표해결 방법이분탐색을 통해 가능한 최대 점프 횟수를 찾음k번 점프할 때 필요한 최소 거리는 1 + 2 + 3 + ... + k = k(k+1)/2이 거리가 N보다 작거나 같아야 하며, N번 징검다리까지 도달 가능해야 함코드 원리start와 end로 탐색 범위 설정mid값으로 가능한 점프 횟수 계산등차수열의 합 공식 활용하여 필요한 최소 거리 계산이분탐색으로 최적값 도출정답 코드T = int(input())for _ in range(T): N = int(input()) start = 0 ..
99클럽 코테 스터디 0일차 TIL + 이분탐색오늘의 학습 내용이분탐색을 활용한 알고리즘 구현시간 초과 문제 해결 방법백준 1072번 '게임'공부한 내용처음에는 단순하게 게임 한판 씩 추가로 수행하며 변화하는 승률을 비교하는 방식을 사용하였습니다. 그러나 입력 값이 큰 경우에는 시간 초과 문제가 발생하였습니다.초기 시간 초과 코드문제점:한 판씩 확인하는 방식으로 시간복잡도가 O(N)입력값이 큰 경우 실행 시간이 매우 길어짐메모리 사용량도 비효율적X, Y = map(int, input().split())Z = (Y * 100) // X # 승률이 99%이상이면 절대 바뀔 수 없음if Z >= 99: print(-1)else: result = 0 while True: # 게임 ..
숫자가 가장 큰 인접한 곳으로 동시에 이동문제https://www.codetree.ai/missions/2/problems/move-to-max-adjacent-cell-simultaneously?&utm_source=clipboard&utm_medium=text 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.www.codetree.ai 코드위치 저장을 위해서 딕셔너리 사용max_value를 사용해 가장 큰 값이 있는 곳으로 이동새로운 위치로 구슬을 업데이트하고, 하나만 존재할 수 있도록 구현n, m, t = map(int, input().split())graph = [list(m..
코드트리문제https://www.codetree.ai/missions/2/problems/move-to-larger-adjacent-cell?&utm_source=clipboard&utm_medium=text 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.www.codetree.ai 코드while 문을 사용moved를 활용해 조건에 만족하지 않을 때까지 계속 이동하도록 구현상, 하, 좌, 우의 우선순위에 따라 이동하기 때문에 가장 큰 수로 이동하지 않도록 구현 for문을 사용해서 (상, 하, 좌, 우) 순서대로 작동하도록 격자판 내에서 가장 큰 수가 없다면 moved = False..
십자 모양 폭발문제https://www.codetree.ai/missions/2/problems/cross-shape-bomb?&utm_source=clipboard&utm_medium=text 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.www.codetree.ai 코드폭탄 범위를 처리한 그래프를 구성각 열별로 열의 값에 중력을 적용중력을 적용한 temp 리스트를 만들고 남은 부분을 다시 0을 추가하는 방식n = int(input())graph = [list(map(int, input().split())) for _ in range(n)]r, c = map(int, input(..