본문 바로가기

TIL(Today I Learned)

(51)
[TIL] 99클럽 코테 스터디 3일차 TIL + 프로그래머스 입국심사 (java) 문제 풀이 (프로그래머스 입국심사) 문제 탐색하기이분 탐색 활용하기모든 사람이 심사를 받는데 걸리는 시간의 최소값을 구하는 문제입니다. n이 주어졌고 각 심사관은 1명을 심사하는데 최대 1,000,000,000분의 시간이 걸린다고 합니다.따라서 1분부터 가장 긴 심사 시간*n 까지의 범위에서 모든 사람이 심사를 받을 수 있는 최소 시간을 구해내면 되는 이분탐색 문제입니다. 최소시간을 left로 지정하고 최대시간을 right로 지정해줍니다.그 사이를 mid로 지정해준 다음 주어진 시간동안(mid) 탐색할 수 있는 사람의 총 수가 n보다 작을 경우 left 를 mid+1로 지정해주고 크거나 같을 경우 right를 mid-1로 지정해준다음 탐색을 지속합니다.left가 right보다 커지면 탐색을 종료하고 그 ..
[TIL] 99클럽 코테 스터디 2일차 TIL + 등차수열의 합 문제 풀이 (백준 11561 징검다리)문제 탐색하기문제 풀이 방식 접근징검다리를 건너는 규칙을 살펴보면 두번째 점프부터는 이전에 점프한 거리보다 1 이상 더 긴 거리를 뛰어야만 한다고 되어있습니다.이를 통해 등차수열의 합 공식을 활용해서 문제를 풀어야한다는 것을 알 수 있습니다.등차 수열의 합이 총 징검다리의 개수보다 작거나 같을 경우의 값 = 밟을 수 있는 징검다리의 최대 개수라는 점을 고려하여 문제를 풀면 됩니다. * 등차수열 합 공식?등차수열 합 공식 : n(n+1)/2등차수열의 합 공식을 통해서 징검다리가 10개인 경우와 11개인 경우를 예시로 들어보겠습니다. [ 징검다리의 개수 : 10 ] 징검다리의 개수가 10개인 경우는 1, 3, 6, 10 번째 징검다리를 밟아서 총 4번이 밟을 수 있는 ..
[TIL] 99클럽 코테 스터디 1일차 TIL + 이분 탐색 문제 풀이 (백준 1072 게임) 문제 탐색하기위 문제를 풀기 위해서는 고려해야할 점이 3가지가 존재합니다.첫번째 부동소수점 오차를 고려해야합니다.두번째 X가 최대 1000,000,000까지 주어질 수 있으므로 시간 복잡도를 고려하여 이분탐색 알고리즘을 활용해야합니다.세번째 승률이 절대 변하지 않는 경우를 생각합니다. * 부동소수점 오차부동소수점 오차는 컴퓨터가 실수를 정확히 표현하지 못해 발생하는 작은 오차입니다. 컴퓨터는 실수를 이진수로 표현하는데, 10진수의 일부 소수점 숫자는 2진수로 완전히 변환되지 않는 경우가 많기에 근사값으로 저장하는 경우가 있습니다. 따라서 이 경우 예상한 결과가 나오지 않을 수 있기때문에 최대한 정수범위 내에서 연산을 하거나 BigDecimal을 사용해야합니다.// 승률을..