알고리즘 - Baekjoon/Gold
[백준] 16987번 : 계란으로 계란치기 Gold5(골드5) - JAVA[자바]
[Gold V] 계란으로 계란치기 - 16987 문제 링크 성능 요약 메모리: 18356 KB, 시간: 280 ms 분류 백트래킹, 브루트포스 알고리즘 제출 일자 2023년 10월 24일 14:31:26 문제 설명 원래 프로그래머의 기본 소양은 팔굽혀펴기를 단 한 개도 할 수 없는 것이라고 하지만 인범이는 3대 500을 넘기는 몇 안되는 프로그래머 중 한 명이다. 인범이는 BOJ에서 틀린 제출을 할 때마다 턱걸이를 5회 하는 기적의 운동 루틴을 통해 뇌와 근육을 동시에 단련한다. 근육을 단련할 때 식단이 정말로 중요하다는 것을 아는 인범이는 탄수화물이 많은 밥이나 빵 따위의 아침 식사를 대신해 단백질이 많은 계란찜을 해먹는다. 계란찜을 먹기 위해서는 계란을 깨야 하는데, 인범이는 힘이 너무 넘치는 나머지..
[백준] 1781번 : 컵라면 Gold2(골드2) - JAVA[자바]
[Gold II] 컵라면 - 1781 문제 링크 성능 요약 메모리: 76172 KB, 시간: 868 ms 분류 자료 구조, 그리디 알고리즘, 우선순위 큐 제출 일자 2023년 10월 23일 12:40:35 문제 설명 상욱 조교는 동호에게 N개의 문제를 주고서, 각각의 문제를 풀었을 때 컵라면을 몇 개 줄 것인지 제시 하였다. 하지만 동호의 찌를듯한 자신감에 소심한 상욱 조교는 각각의 문제에 대해 데드라인을 정하였다. 문제 번호 1 2 3 4 5 6 7 데드라인 1 1 3 3 2 2 6 컵라면 수 6 7 2 1 4 5 1 위와 같은 상황에서 동호가 2, 6, 3, 1, 7, 5, 4 순으로 숙제를 한다면 2, 6, 3, 7번 문제를 시간 내에 풀어 총 15개의 컵라면을 받을 수 있다. 문제는 동호가 받을 ..
[백준] 1655번 : 가운데를 말해요 Gold 2(골드 2) - JAVA[자바]
[Gold II] 가운데를 말해요 - 1655 문제 링크 성능 요약 메모리: 34432 KB, 시간: 528 ms 분류 자료 구조, 우선순위 큐 제출 일자 2023년 10월 23일 10:50:07 문제 설명 백준이는 동생에게 "가운데를 말해요" 게임을 가르쳐주고 있다. 백준이가 정수를 하나씩 외칠때마다 동생은 지금까지 백준이가 말한 수 중에서 중간값을 말해야 한다. 만약, 그동안 백준이가 외친 수의 개수가 짝수개라면 중간에 있는 두 수 중에서 작은 수를 말해야 한다. 예를 들어 백준이가 동생에게 1, 5, 2, 10, -99, 7, 5를 순서대로 외쳤다고 하면, 동생은 1, 1, 2, 2, 2, 2, 5를 차례대로 말해야 한다. 백준이가 외치는 수가 주어졌을 때, 동생이 말해야 하는 수를 구하는 프로그램..
[백준] 13975번 : 파일 합치기3 Gold4(골드 4) - JAVA[자바]
[Gold IV] 파일 합치기 3 - 13975 문제 링크 성능 요약 메모리: 268972 KB, 시간: 3144 ms 분류 자료 구조, 그리디 알고리즘, 우선순위 큐 제출 일자 2023년 10월 23일 09:42:22 문제 설명 소설가인 김대전은 소설을 여러 장(chapter)으로 나누어 쓰는데, 각 장은 각각 다른 파일에 저장하곤 한다. 소설의 모든 장을 쓰고 나서는 각 장이 쓰여진 파일을 합쳐서 최종적으로 소설의 완성본이 들어있는 한 개의 파일을 만든다. 이 과정에서 두 개의 파일을 합쳐서 하나의 임시파일을 만들고, 이 임시파일이나 원래의 파일을 계속 두 개씩 합쳐서 파일을 합쳐나가고, 최종적으로는 하나의 파일로 합친다. 두 개의 파일을 합칠 때 필요한 비용(시간 등)이 두 파일 크기의 합이라고 가..
[백준] 1715번 : 카드 정렬하기 Gold 4(골드5) - JAVA[자바]
[Gold IV] 카드 정렬하기 - 1715 문제 링크 성능 요약 메모리: 25836 KB, 시간: 364 ms 분류 자료 구조, 그리디 알고리즘, 우선순위 큐 제출 일자 2023년 10월 23일 09:23:09 문제 설명 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장의 숫자 카드 묶음을 합치려면 50번의 비교가 필요하다. 매우 많은 숫자 카드 묶음이 책상 위에 놓여 있다. 이들을 두 묶음씩 골라 서로 합쳐나간다면, 고르는 순서에 따라서 비교 횟수가 매우 달라진다. 예를 들어 10장, 20장, 40장의 묶음이 있다면 10장과 20장을 합친 뒤, 합..
[Gold IV] 오큰수 - 17298 - JAVA[자바]
문제 링크 성능 요약 메모리: 142136 KB, 시간: 1108 ms 분류 자료 구조, 스택 제출 일자 2023년 10월 14일 15:49:47 문제 설명 크기가 N인 수열 A = A1, A2, ..., AN이 있다. 수열의 각 원소 Ai에 대해서 오큰수 NGE(i)를 구하려고 한다. Ai의 오큰수는 오른쪽에 있으면서 Ai보다 큰 수 중에서 가장 왼쪽에 있는 수를 의미한다. 그러한 수가 없는 경우에 오큰수는 -1이다. 예를 들어, A = [3, 5, 2, 7]인 경우 NGE(1) = 5, NGE(2) = 7, NGE(3) = 7, NGE(4) = -1이다. A = [9, 5, 4, 8]인 경우에는 NGE(1) = -1, NGE(2) = 8, NGE(3) = 8, NGE(4) = -1이다. 입력 첫째 줄..
[Gold V] 옥상 정원 꾸미기 - 6198 - JAVA[자바]
문제 링크 성능 요약 메모리: 23500 KB, 시간: 312 ms 분류 자료 구조, 스택 제출 일자 2023년 10월 12일 22:07:20 문제 설명 도시에는 N개의 빌딩이 있다. 빌딩 관리인들은 매우 성실 하기 때문에, 다른 빌딩의 옥상 정원을 벤치마킹 하고 싶어한다. i번째 빌딩의 키가 hi이고, 모든 빌딩은 일렬로 서 있고 오른쪽으로만 볼 수 있다. i번째 빌딩 관리인이 볼 수 있는 다른 빌딩의 옥상 정원은 i+1, i+2, .... , N이다. 그런데 자신이 위치한 빌딩보다 높거나 같은 빌딩이 있으면 그 다음에 있는 모든 빌딩의 옥상은 보지 못한다. 예) N=6, H = {10, 3, 7, 4, 12, 2}인 경우 = = = = - = = = = -> 관리인이 보는 방향 = - = = = = ..
[Gold V] 탑 - 2493 - JAVA[자바]
문제 링크 성능 요약 메모리: 100768 KB, 시간: 820 ms 분류 자료 구조, 스택 제출 일자 2023년 10월 12일 21:27:31 문제 설명 KOI 통신연구소는 레이저를 이용한 새로운 비밀 통신 시스템 개발을 위한 실험을 하고 있다. 실험을 위하여 일직선 위에 N개의 높이가 서로 다른 탑을 수평 직선의 왼쪽부터 오른쪽 방향으로 차례로 세우고, 각 탑의 꼭대기에 레이저 송신기를 설치하였다. 모든 탑의 레이저 송신기는 레이저 신호를 지표면과 평행하게 수평 직선의 왼쪽 방향으로 발사하고, 탑의 기둥 모두에는 레이저 신호를 수신하는 장치가 설치되어 있다. 하나의 탑에서 발사된 레이저 신호는 가장 먼저 만나는 단 하나의 탑에서만 수신이 가능하다. 예를 들어 높이가 6, 9, 5, 7, 4인 다섯 개..