본문 바로가기

정렬35

[백준 20300] 서강근육맨 (C++) https://www.acmicpc.net/problem/20300문제로니 콜먼 동영상을 보고 보디빌더가 되기로 결심한 향빈이는 PT 상담을 받으러 서강헬스클럽에 갔다. 향빈이가 서강헬스클럽을 선택한 이유는 PT를 받을 때 사용하는 운동기구를 회원이 선택할 수 있다는 점 때문이다. 하지만, 서강헬스클럽은 항상 사람이 많아서 PT를 한 번 받을 때 운동기구를 최대 두 개까지만 선택할 수 있다.헬스장에 있는 N개의 운동기구를 한 번씩 사용해보고 싶은 향빈이는 PT를 받을 때마다 이전에 사용하지 않았던 운동기구를 선택하기로 계획을 세웠다. 그리고 비용을 절약하기 위해 PT를 받을 때 운동기구를 되도록이면 두 개를 사용하기로 했다. 예를 들어, 헬스장에 총 10개의 운동기구가 있을 경우 PT를 5번 받으면 모든.. 2024. 10. 31.
[백준 22232] 가희와 파일 탐색기 (C++) https://www.acmicpc.net/problem/22232 문제 가희는 jo_test 폴더에 들어와 있습니다. 가희는 jo_test에 있는 파일 N개를 아래 기준에 따라 정렬하려고 합니다.파일명 (FILENAME) 사전순으로파일명 (FILENAME)이 같다면 가희가 설치한 OS에서 인식하는 확장자가 붙은 것이 먼저 나오게1과 2로도 순서를 결정할 수 없다면, 파일 확장자 (EXTENSION) 사전 순으로파일 N개를 문제에서 설명하는 정렬 기준에 따라 정렬해 주세요. 사전순의 기준은 아스키 코드 순입니다. 입력첫 번째 줄에 jo_test 폴더에 있는 파일 개수 N과 가희가 설치한 OS에서 인식하는 파일 확장자의 개수 M이 공백으로 구분되어 주어집니다.2번째 줄부터 N+1번째 줄까지 FILENAME.. 2024. 10. 29.
[백준 1059] 좋은 구간 (C++) https://www.acmicpc.net/problem/1059문제정수 집합 S가 주어졌을때, 다음 조건을 만족하는 구간 [A, B]를 좋은 구간이라고 한다.A와 B는 양의 정수이고, A A ≤ x ≤ B를 만족하는 모든 정수 x가 집합 S에 속하지 않는다.집합 S와 n이 주어졌을 때, n을 포함하는 좋은 구간의 개수를 구해보자. 입력첫째 줄에 집합 S의 크기 L이 주어진다. 둘째 줄에는 집합에 포함된 정수가 주어진다. 셋째 줄에는 n이 주어진다. 출력첫째 줄에 n을 포함하는 좋은 구간의 개수를 출력한다. 제한1 ≤ L ≤ 50집합 S에는 중복되는 정수가 없다.집합 S에 포함된 모든 정수는 1보다 크거나 같고, 1,000보다 작거나 같다.1 ≤ n ≤ (집합 S에서 가장 큰 정수)문제 풀이수학 문제. .. 2024. 10. 20.
[백준 2628] 종이자르기 (C++) https://www.acmicpc.net/problem/2628문제아래 과 같이 직사각형 모양의 종이가 있다. 이 종이는 가로방향과 세로 방향으로 1㎝마다 점선이 그어져 있다. 가로 점선은 위에서 아래로 1번부터 차례로 번호가 붙어 있고, 세로 점선은 왼쪽에서 오른쪽으로 번호가 붙어 있다. 점선을 따라 이 종이를 칼로 자르려고 한다. 가로 점선을 따라 자르는 경우는 종이의 왼쪽 끝에서 오른쪽 끝까지, 세로 점선인 경우는 위쪽 끝에서 아래쪽 끝까지 한 번에 자른다. 예를 들어, 의 가로 길이 10㎝이고 세로 길이 8㎝인 종이를 3번 가로 점선, 4번 세로 점선, 그리고 2번 가로 점선을 따라 자르면 와 같이 여러 개의 종이 조각으로 나뉘게 된다. 이때 가장 큰 종이 조각의 넓이는 30㎠이다. 입력으로 종.. 2024. 10. 12.
[백준 17390] 이건 꼭 풀어야 해! (C++) https://www.acmicpc.net/problem/17390문제숭실골 높은 언덕 깊은 골짜기에 출제로 고통 받는 욱제가 살고 있다!욱제는 또 출제를 해야 해서 단단히 화가 났다. 그래서 욱제는 길이 N짜리 수열 A를 만들고, A를 비내림차순으로 정렬해서 수열 B를 만들어 버렸다!! 여기서 B를 출력하기만 하면 문제가 너무 쉬우니까 하나만 더 하자. 아래와 같은 질문이 무려 Q개나 주어진다!! (ㅎㅎ;; ㅈㅅ.. ㅋㅋ!!)L R: BL + BL+1 + ... + BR-1 + BR 을 출력한다.욱제의 질문에 답하고 함께 엠티를 떠나자!! 입력첫 번째 줄에 수열 A의 길이 N과 질문의 개수 Q가 공백으로 구분되어 주어진다. (1 ≤ N, Q ≤ 300,000)두 번째 줄에 N개의 정수 A1, A2, ... 2024. 9. 23.
[백준 1183] 약속 (C++) https://www.acmicpc.net/problem/1183문제마법사 N명이 머글 문화를 이해하기 위해 머글과 약속을 잡았다. 각 마법사는 한 명의 머글을 만날 예정이다. 하지만, 마법사는 약속 시간보다 빨리 또는 늦게 도착할 수 있기 때문에 고민에 빠졌다. 결국 기다리는 시간을 최소화 하기 위해 모든 약속 시간을 T씩 미루려고 한다. 기다리는 시간은 먼저 도착한 사람이 늦게 도착한 사람이 도착할 때까지 기다리는 시간을 의미한다.마법사의 약속 시간은 A1, A2, ..., AN이고, 도착 시간은 B1, B2, ..., BN이다. 약속 시간을 T만큼 미루면, 기다리는 시간의 합은 |Ai + T - Bi|의 합과 같다. 기다리는 시간의 합이 최소가 되는 서로 다른 정수 T의 개수를 구해보자.입력첫째 줄.. 2024. 9. 11.
[백준 25631] 마트료시카 합치기 (C++) https://www.acmicpc.net/problem/25631 문제마트료시카는 속이 비어있는 인형이다. 성빈이는 𝑁개의 마트료시카를 가지고 있다. 𝑖번째 마트료시카의 크기는 𝑎𝑖이고, 마트료시카 속은 모두 비어있다.성빈이는 남아 있는 마트료시카 중에서 𝑖번째와 𝑗번째(𝑖≠𝑗)마트료시카를 고른 뒤에 𝑖번째 마트료시카를 𝑗번째 마트료시카 속에 넣을 수 있다. 단, 𝑗번째 마트료시카의 속이 비어있어야 하고, 𝑖번째 마트료시카보다 𝑗번째 마트료시카가 더 커야 한다. 합친 후에는 남아 있는 마트료시카의 개수가 한 개 줄어든다.성빈이는 마트료시카를 최대한 합쳐서 정리하려고 한다. 성빈이가 마트료시카를 잘 합친다면 남아 있는 마트료시카의 최소 개수는 얼마일까? 입력첫째 줄에 마트료시카의 .. 2024. 9. 4.
[백준 11497] 통나무 건너뛰기 (C++) 문제남규는 통나무를 세워 놓고 건너뛰기를 좋아한다. 그래서 N개의 통나무를 원형으로 세워 놓고 뛰어놀려고 한다. 남규는 원형으로 인접한 옆 통나무로 건너뛰는데, 이때 각 인접한 통나무의 높이 차가 최소가 되게 하려 한다.통나무 건너뛰기의 난이도는 인접한 두 통나무 간의 높이의 차의 최댓값으로 결정된다. 높이가 {2, 4, 5, 7, 9}인 통나무들을 세우려 한다고 가정하자. 이를 [2, 9, 7, 4, 5]의 순서로 세웠다면, 가장 첫 통나무와 가장 마지막 통나무 역시 인접해 있다. 즉, 높이가 2인 것과 높이가 5인 것도 서로 인접해 있다. 배열 [2, 9, 7, 4, 5]의 난이도는 |2-9| = 7이다. 우리는 더 나은 배열 [2, 5, 9, 7, 4]를 만들 수 있으며 이 배열의 난이도는 |5-9.. 2024. 9. 3.
[백준 1037] 약수 (C++) https://www.acmicpc.net/problem/1037문제양수 A가 N의 진짜 약수가 되려면, N이 A의 배수이고, A가 1과 N이 아니어야 한다. 어떤 수 N의 진짜 약수가 모두 주어질 때, N을 구하는 프로그램을 작성하시오. 입력첫째 줄에 N의 진짜 약수의 개수가 주어진다. 이 개수는 50보다 작거나 같은 자연수이다. 둘째 줄에는 N의 진짜 약수가 주어진다. 1,000,000보다 작거나 같고, 2보다 크거나 같은 자연수이고, 중복되지 않는다. 출력첫째 줄에 N을 출력한다. N은 항상 32비트 부호있는 정수로 표현할 수 있다. 문제 풀이수학 문제.어떤 수 A가 N의 약수이려면 N은 A로 나누어떨어져야 한다. 나누어떨어지면 나머지가 생기지 않으므로 N/A 역시 약수가 된다.따라서 약수를 정렬한.. 2024. 9. 1.