본문 바로가기

# Foundation

(88)
# Foundation/백준풀이 [이분탐색] 백준 2805 :: 나무 자르기 나무 자르기 성공한국어 시간 제한메모리 제한제출정답맞은 사람정답 비율1 초256 MB263257259452825.656%문제상근이는 나무 M미터가 필요하다. 근처에 나무를 구입할 곳이 모두 망해버렸기 때문에, 정부에 벌목 허가를 요청했다. 정부는 상근이네 집 근처의 나무 한 줄에 대한 벌목 허가를 내주었고, 상근이는 새로 구입한 목재절단기을 이용해서 나무를 구할것이다.목재절단기는 다음과 같이 동작한다. 먼저, 상근이는 절단기에 높이 H를 지정해야 한다. 높이를 지정하면 톱날이 땅으로부터 H미터 위로 올라간다. 그 다음, 한 줄에 연속해있는 나무를 모두 절단해버린다. 따라서, 높이가 H보다 큰 나무는 H 위의 부분이 잘릴 것이고, 낮은 나무는 잘리지 않을 것이다. 예를 들어, 한 줄에 연속해있는 나무의 높..

2019. 5. 24. 16:55

# Foundation/알고리즘 이분탐색(Binary Serach) 알고리즘 이분탐색이란?매 단계마다 탐색범위를 절반씩 줄이는 방식.현재범위를 반으로 쪼갠 뒤, 답이 존재하지 않는 쪽을 제거한다. 업 다운 게임이 대표적인 예시인데,범위가 [0, 100]인 게임에서 최소횟수로 정답을 맞추려면, 정답이 있을법한 구간의 중간값을 골라서, 매번 정답의 범위를 절반으로 줄여야 한다. UP 이라면, 작은 구간에는 답이 없으며.DN 이라면, 큰 구간에는 답이 없다. 이분탐색의 제약이분탐색의 핵심은 정답이 없는 절반을 배제하는 것 이며,배제할 구간에 정답이 없다는 것을 확신할 수 있어야 한다. 업-다운 게임에서 이분탐색을 적용할 수 있는 이유는.50의 결과가 UP일때, 50이하에는 정답이 없다고 확신할 수 있기 때문이다. 중간값과의 비교를 통해 답의 위치를 알 수 있어야 하며, 수학적으로 풀어..

2019. 5. 24. 14:38

# Foundation/백준풀이 [이분탐색] 백준 1920 :: 수 찾기 수 찾기 성공시간 제한메모리 제한제출정답맞은 사람정답 비율2 초128 MB339878981592227.524%문제N개의 정수 A[1], A[2], …, A[N]이 주어져 있을 때, 이 안에 X라는 정수가 존재하는지 알아내는 프로그램을 작성하시오.입력첫째 줄에 자연수 N(1≤N≤100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1≤M≤100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들이 A안에 존재하는지 알아내면 된다. 모든 정수들의 범위는 int 로 한다.출력M개의 줄에 답을 출력한다. 존재하면 1을, 존재하지 않으면 0을 출력한다.예제 입력 1 복사5 4 1 5 2 3 5 1 3 7 9 5 예제 출력 1 복사1..

2019. 5. 23. 20:23

# Foundation/백준풀이 [정렬] 백준 2358 :: 평행선 평행선 성공시간 제한메모리 제한제출정답맞은 사람정답 비율2 초128 MB122235127531.321%문제평면상에 n개의 점이 있다. 이 점들 중에 서로 다른 두 점을 선택하면 하나의 직선이 만들어진다. 이와 같이 직선을 만들었을 때, x축 또는 y축에 평행한 직선이 몇 개나 되는지 알아내는 프로그램을 작성하시오.입력첫째 줄에 n(1≤n≤100,000)이 주어진다. 다음 n개의 줄에는 각 점의 좌표가 int 범위에서 주어진다. 만약 입력에 서로 같은 두 점이 주어지면, 그 두 점을 이용하여 직선을 만들 수 있다.출력첫째 줄에 답을 출력한다.예제 입력 1 복사4 0 0 10 10 0 10 10 0예제 출력 1 복사4 문제 풀이1차 풀이 ( 2648 KB, 40 ms )문제가 굉장히 모호하다. 30 1 0 ..

2019. 5. 17. 19:53

# Foundation/백준풀이 [정렬] 백준 2230 :: 수 고르기 수 고르기 성공시간 제한메모리 제한제출정답맞은 사람정답 비율2 초128 MB131938628328.442%문제N(1≤N≤100,000)개의 수로 이루어진 수열 A[1], A[2], …, A[N]이 있다. 이 수열에서 두 수를 골랐을 때(같은 수일 수도 있다), 그 차이가 M 이상이면서 제일 작은 경우를 구하는 프로그램을 작성하시오.예를 들어 수열이 {1, 2, 3, 4, 5}라고 하자. 만약 M=3일 경우, 1 4, 1 5, 2 5를 골랐을 때 그 차이가 M 이상이 된다. 이 중에서 차이가 가장 작은 경우는 1 4나 2 5를 골랐을 때의 3이 된다.입력첫째 줄에 두 정수 N, M(0≤M≤2,000,000,000)이 주어진다. 다음 N개의 줄에는 차례로 A[1], A[2], …, A[N]이 주어진다. 각각..

2019. 5. 17. 18:10

# Foundation/백준풀이 [정렬] 백준 2870 :: 수학숙제 수학숙제 성공한국어 시간 제한메모리 제한제출정답맞은 사람정답 비율1 초128 MB138340535032.022%문제상근이는 수학시간에 딴 짓을 하다가 선생님께 걸렸다. 선생님은 상근이에게 이번 주말동안 반성하라며 엄청난 숙제를 내주었다.선생님이 상근이에게 준 종이에는 숫자와 알파벳 소문자로 되어있는 글자가 N줄있다. 상근이는 여기서 숫자를 모두 찾은 뒤, 이 숫자를 비내림차순으로 정리해야한다. 숫자의 앞에 0이 있는 경우에는 정리하면서 생략할 수 있다.글자를 살펴보다가 숫자가 나오는 경우에는, 가능한 가장 큰 숫자를 찾아야 한다. 즉, 모든 숫자의 앞과 뒤에 문자가 있거나, 줄의 시작 또는 끝이어야 한다.예를 들어, 01a2b3456cde478에서 숫자를 찾으면 1, 2, 3456, 478이다.선생님이 ..

2019. 5. 17. 17:26

# Foundation/백준풀이 [정렬] 백준 2399 :: 거리의 합 거리의 합 성공시간 제한메모리 제한제출정답맞은 사람정답 비율1 초128 MB162880764252.110%문제수직선에 n개의 점이 찍혀 있다. 각각의 점의 x좌표가 주어졌을 때, n2개의 모든 쌍에 대해서 거리를 더한 값을 구하는 프로그램을 작성하시오.즉, 모든 i, j에 대해서 |x[i] - x[j]|의 합을 구하는 것이다.입력첫째 줄에 n(1 ≤ n ≤ 10,000)이 주어진다. 다음 줄에는 x[1], x[2], x[3], …, x[n]이 주어진다. 각각은 0 이상 1,000,000,000 이하의 정수이다.출력첫째 줄에 답을 출력한다.예제 입력 1 복사5 1 5 3 2 4 예제 출력 1 복사40 문제 풀이처음 봤을 땐, 정렬문제가 맞을까 의심했던 문제.수학이 이렇게 중요합니다 여러분, 1차 풀이 ( ..

2019. 5. 17. 15:43

# Foundation/백준풀이 [정렬] 백준 3020 :: 개똥벌레 개똥벌레 성공한국어 시간 제한메모리 제한제출정답맞은 사람정답 비율1 초128 MB39221428105838.854%문제개똥벌레 한 마리가 장애물(석순과 종유석)로 가득찬 동굴에 들어갔다. 동굴의 길이는 N미터이고, 높이는 H미터이다. (N은 짝수) 첫 번째 장애물은 항상 석순이고, 그 다음에는 종유석과 석순이 번갈아가면서 등장한다.아래 그림은 길이가 14미터이고 높이가 5미터인 동굴이다. (예제 그림)이 개똥벌레는 장애물을 피하지 않는다. 자신이 지나갈 구간을 정한 다음 일직선으로 지나가면서 만나는 모든 장애물을 파괴한다.위의 그림에서 4번째 구간으로 개똥벌레가 날아간다면 파괴해야하는 장애물의 수는 총 여덟개이다. (4번째 구간은 길이가 3인 석순과 길이가 4인 석순의 중간지점을 말한다)하지만, 첫 번째..

2019. 5. 17. 13:47