백준 4949스택에 "("랑 "\["만 추가하면서 입력이 스택 마지막에 있는 값이랑 매칭이 되는지 확인하면 된다.라고 쉽게 풀줄 알았는데.. 반례 이것저것 넣어봤지만 다 제대로 나오길래 설마 싶었다.처음에는 입력을 받을 때 로 받았는데 이러면 " ."을 입력 받았을 때
백준 1966 처음에는 문제조차 이해를 못해서 문제를 계속 읽어봤다. 예제 입력 1: 3 <- 테스트 케이스 수 1 0 <- (큐에 대기중인 문서의 수, 몇 번째에 출력되는지 찾아야 할 문서의 인덱스 번호) 5 <- 문서들의 중요도 ?? 4 2 <- (큐에 대
백준 1654랜선을 잘랐을 때 N개의 랜선을 만드는데 랜선의 길이를 최대로 해야한다. 이런 문제는 이분 탐색으로 답을 찾을 수 있다. 이분 탐색에서는 탐색의 시작 지점과 끝 지점을 잘 지정해두어야한다. 문제에서 답이 나올 수 있는 범위보다 작게 설정하면 답이 안나오는
백준 2579계단을 건너는 방법으로부터 가능한 상태는일단 현재 칸은 밟은 상태이전 칸을 밟는다.이전 칸을 밟지 않고 그 전 칸을 밟았다.2번 경우는 1칸 전을 밟지 않았기 때문에 2칸 전에 점수를 그대로 가져오면 된다. 2칸 전을 밟았으므로 그 다음 칸을 건너뛴다면 현
백준 1260
백준 2252번뒤에 줄을 서는 학생은 선행되는 비교가 모두 끝난 후에 줄에 설 수 있으므로 이 문제는 위상 정렬 알고리즘으로 풀면 된다.
백준 2143번메모리 제한이 64MB라 딕셔너리를 사용해서 풀면 메모리 초과가 발생할 줄 알았지만 의외로 통과되었다. 원래 의도는 이분 탐색을 이용해서 푸는 문제다.누적 합 배열을 구하고 그 누적 합 배열에서 값 두개를 선택하는 것으로 누적 합의 범위를 지정한다고 볼
백준 1005백준 2252번 문제와 같은 유형의 위상 정렬 문제이다. 차이점은 진입 차수가 0일 때 큐에 추가하는 것 뿐만 아니라 선행 노드에 걸리는 시간이 최대인 값으로 업데이트 시켜줘야한다.인접 리스트와 진입 차수 배열, 걸린 시간을 저장하기 위한 또 다른 배열이
백준 1644 연속된 리스트 값의 합 문제로 두 포인터를 이용해 풀면 된다. 소수 리스트를 구할 때 값들이 정렬 되어있으므로 다른 처리를 해주지 않아도 된다.
백준 2342다음 스탭을 밟을 때 필요한 힘은 왼쪽 발이나 오른쪽 발을 옮겼을 때 드는 비용의 최솟값이다.현재 위치에서 항상 최소 비용을 가지는 방향으로 그리디하게 푼다면 move = 1, 4, 2, 1, 1, 0 로 들어 왔을 때(1, 0) → (1, 4) → (2,
백준 2473백준 2467번과 같은 똑같은 문제다. 용액 하나를 더 쓰는 차이인데 입력의 수가 5000개 밖에 되지 않기 때문에 이중 반복문과 두 포인터를 사용하면 된다.
보조 PD들이 가져온 모든 순서들을 만족하게 줄을 세우는 문제로 백준 2252번 문제와 유사하다. 주어진 입력을 어떻게 인접리스트와 진입 차수 배열로 나타낼 지만 해결한다면 동일한 방법으로 풀 수 있다. 문제에서 주어진 순서들이 사이클을 형성하지 않는다면
백준 4386모든 별들을 이어주는데 필요한 비용의 최솟값을 출력해야한다. 최소 비용을 출력하므로 최소 스패닝 트리를 구하면 된다. 최소가 되려면 모든 노드를 포함하지만 두 노드 사이에는 하나의, 가장 비용이 적은 간선만 있도록 하면 된다.(최소 스패닝 트리 문제는 에지
백준 7579배낭 문제 강의앱마다 사용하는 메모리와 비활성화 했을 때 비용의 효율이 다 다르고, 메모리를 분할시킬순 없으니 01배낭 문제 방식으로 접근하면 된다.
백준 9466앞에 두 명처럼 지목한 사람들끼리 사이클을 형성하게 되면 같은 팀이 된다.
백준 11049
백준 16724벽 끝으로 간다면 알아서 멈추겠지만 방향 지도에서 루프가 생겨버리면 멈추지 못하고 계속 돌게 된다.
백준 1007출처: OnlineMathLearning점 A와 점 B를 잇는 벡터를 $\\overrightarrow{AB}$라 한다면 이를 $\\overrightarrow{OB} - \\overrightarrow{OA}$ (O는 원점)으로 표현할 수 있다. 그렇다면 주어
백준 1202가방에는 하나의 보석밖에 들어갈 수 없어 그리디로도 풀 수 있다.가방에는 가방이 버틸수 있는 무게의 보석 중 가치가 가장 높은 것부터 들어가야한다. 먼저 가방을 오름차순으로, 보석은 무게를 기준으로 오름차순으로 정렬한다. 가능한 무게가 작은 가방부터 정렬을
백준 1766가능하면 쉬운 문제부터 풀되 먼저 풀어야하는 문제는 먼저 풀어야한다. 선행되어야 하는 작업이 있고, 쉬운 문제부터 풀어야 하므로 힙을 이용해 위상 정렬로 풀었다.
백준 9527
백준 10775도킹할 수 있는 가장 높은 번호의 게이트부터 비행기를 도킹시킨다. 해당 인덱스에 도킹을 시켰다면 다음에는 그 인덱스보다 1 적은 값에 도킹시켜야하므로 이 인덱스를 저장해주어야한다.
백준 12015https://st-lab.tistory.com/285새로 들어오는 값이 현재 리스트의 마지막 값보다 크면 리스트 마지막에 추가해주면 된다. 더 작은 값이 들어오게 되면 현재 가지고 있는 리스트에서 이 값이 어디에 들어가야 할 지 정해줘야한다.이
백준 9328건물의 모든 외부에서 입구가 생길 수 있으므로 전체 외곽을 방문 가능한 곳으로 추가해준다.열쇠를 발견했다면 잠겨있는 곳으로 다시 가야하므로 방문 기록을 초기화시켜준다.
백준 12850행에서 출발해 열로 가는 방법을 그래프로 나타낸 후 푼다예시로 경로가 0에서 1, 1에서 0밖에 없다고 하면$$A = \\begin{pmatrix}0\\rightarrow0 & 0\\rightarrow1\\1\\rightarrow0 & 1\\rightar
백준 13334먼저 집이나 사무실을 우선 정렬한다.끝 지점이 가장 낮은값부터 시작해 순차적으로 탐색할 수 있도록 끝 지점을 기준으로 정렬한다. 같은 지점에서 끝나는 경우 출발지점이 더 앞쪽인 기준으로 정렬한다.
백준 11438여기에 있는 강의 내용을 바탕으로 구현해봤다.
백준 2357여기에 있는 강의를 바탕으로 구현했다.