Algorithm/BinarySearch 4

99클럽 코테 스터디 2일차 TIL - 백준 11561. 징검다리

백준 11561. 징검다리 / python / Silver 3 / 1h+문제 및 코드https://www.acmicpc.net/problem/11561T = int(input())tc = []for _ in range(T): tc.append(int(input()))for n in tc: start = 1 end = n answer = 0 while start 접근 방식징검다리가 n개 일 때, 처음 건넌 거리보다 다음번부터는 최소 1 이상 넘는 거리를 뛰어야 하므로 1 + 2 + 3 + ... + k 형태의 등차수열 합을 만족하는 건넌 횟수가 필요하다.등차수열의 합 구하는 공식은 k(k+1)/2 이므로 이분탐색으로 n에 가장 가까운 k를 구해주면 된다.후기이분탐색인지 알고 풀면..

99클럽 코테 스터디 1일차 TIL - 백준 1072. 게임

백준 1072. 게임 / node.js / Silver 3 / 51m문제 및 코드https://www.acmicpc.net/problem/1072const filePath = process.platform === "linux" ? "./dev/stdin" : "input.txt";let [x, y] = require("fs") .readFileSync(filePath) .toString() .trim() .split(" ") .map((num) => +num);let z = Math.floor((y * 100) / x);let left = 1;let right = 1000000000;let answer = Number.MAX_SAFE_INTEGER;while (left 접근 방식이분 탐색 알고리..

이분 탐색

이분 탐색이란이분탐색(Binary Search)은 정렬된 배열에서 원하는 값을 빠르게 찾기 위한 알고리즘입니다.시간 복잡도가 O(log⁡n)이기 때문에, 탐색 속도가 매우 빠르고 효율적입니다.이분탐색의 핵심 개념은 탐색 범위를 반씩 줄여가며 원하는 값을 찾아가는 데 있습니다.이분 탐색의 작동 원리초기 설정: 탐색 범위의 시작점 left와 끝점 right를 설정합니다. 처음에는 left는 배열의 첫 번째 인덱스, right는 마지막 인덱스로 설정합니다.중간값 계산: left와 right의 중간 인덱스 mid를 계산합니다. mid = (left + right) // 2.값 비교:중간값 arr[mid]가 찾고자 하는 값 target과 일치하면, mid를 반환하여 탐색을 종료합니다.arr[mid]가 target..

[python] 프로그래머스 level3 입국심사 / 이분탐색

문제 https://school.programmers.co.kr/learn/courses/30/lessons/43238 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 이분탐색 풀이 범위 : 심사에 걸리는 최소 시간 ~ 심사에 걸리는 최대 시간 * 사람 수 mid : 임의의 시간, mid // time 은 임의의 시간동안 해당 심사대가 심사할 수 있는 사람 수를 계산한 것 기준 : mid 동안 심사한 사람 수(people)이 n보다 크거나 같으면 시간이 충분한 것이므로, right 조정 mid 동안 심사한 사람 수(people)이 n보다 작으면 시간이..