정렬5 [S4] 백준 31797 - 아~파트 아파트(Python3) https://www.acmicpc.net/problem/31797💡 해결과정 문제에 함정이 있었다. 아파트 술게임 특성상 절대 중간에 다른 층이 존재할 수 없다. 또, 독자적인 층을 부여할 수 없다.예를 들면 사람은 3명인데, 손을 가장 위로 뻗으며, "내 오른손은 100층" 뭐 이런식으로 말이다.하지만 이것은 실제 게임을 하는것이 아니라 문제이다. 고정관념에 휩싸였다간 이런 중간층 없이 높은 층을 불러버려 맞왜틀?을 외치게 만드는 문제다. 두 손의 높이를 편하게 left, right라고 부르겠다. 문제에서 주어지는 입력 조건은 참가자의 수 1,000일때 이 left, right가 9999, 10000일수도 있는 것이다.👀 풀이그래서 압축하듯이 정렬해서 풀면 된다.그래서 좌표 압축 문제가 이 문제.. 2024. 11. 14. [G4] 백준 1253 - 좋다 (python3) https://www.acmicpc.net/problem/1253 1253번: 좋다 첫째 줄에는 수의 개수 N(1 ≤ N ≤ 2,000), 두 번째 줄에는 i번째 수를 나타내는 Ai가 N개 주어진다. (|Ai| ≤ 1,000,000,000, Ai는 정수) www.acmicpc.net 해결방법 투 포인터를 이용해서 문제를 해결할 수 있다. 풀이👀 이번 문제에서 투 포인터를 활용하기 위해선, 반드시 입력되는 배열이 정렬되어야 한다. 왜냐하면 투 포인터의 head와 tail 인덱스로 어떤 값이 나올지 예측해야 하기 때문이다. 만약 target과 비교했을 때, 값이 작으면 head를 +1 해주고, 반대로 작으면 tail을 -1 해주는 식으로 말이다. 곰곰이 생각해보면 이 로직은 이분탐색의 로직과 같다. (이분탐.. 2023. 7. 14. [Java] 백준 6068 - 시간 관리하기 https://www.acmicpc.net/problem/6068 6068번: 시간 관리하기성실한 농부 존은 시간을 효율적으로 관리해야 한다는 걸 깨달았다. 그는 N개의 해야할 일에 (1www.acmicpc.net해결방법 및 풀이https://study-it-all.tistory.com/14위 링크를 참조해주세요.java는 2차원 배열 대신 객체 배열을 이용해서 풀이를 했습니다.코드import java.util.Scanner;class Work{ int time; //일하는 데에 걸리는 시간 int deadline; //마감시간 Work(int t, int d){ this.time = t; this.deadline = d; }}public class Main.. 2022. 5. 20. [Python] 백준 6068 - 시간 관리하기 https://www.acmicpc.net/problem/6068 6068번: 시간 관리하기 성실한 농부 존은 시간을 효율적으로 관리해야 한다는 걸 깨달았다. 그는 N개의 해야할 일에 (1=0: suc_all = True for i in range(works): if start + task[i][0] > task[i][1]: t -= 1 start = t suc_all = False break; start += task[i][0] # t일 때 모든 순회를 통과하면? # 그게 정답 if suc_all: print(t) break if t task[k][1]: task[i], task[k] = task[k], task[i] elif task[i][1] == task[k][1]: if task[i][0] > .. 2022. 5. 20. [Python] 백준 9237 - 이장님 초대 https://www.acmicpc.net/problem/9237 해결방법 자라는 데에 가장 오래 걸리는 나무부터 가장 빠르게 자라는 나무순으로 배열을 정렬한다. 즉, 내림차순으로 정렬한다는 이야기이다. 나무 한 그루를 심는 데에 꼬박 하루씩이나 걸리니 1일부터 주어진 나무의 수만큼의 일수가 필요하다. 그리고 나무가 자라는 시간까지도 필요하다. 주어진 예제를 통해 이해해보자. 예제 입력 1 4 2 3 4 3 풀이 4그루의 나무를 심는다. 주어진 배열(나무가 자라는 데에 필요한 일 수)을 내림차순으로 정렬하면 [4, 3, 3, 2]가 되겠다. 다 자란 다음날에 이장님을 초대할 것이므로 첫 번째 나무는 1일에 심어지고 자라는 데에 4일이 더 걸리므로 6(5+1)일에, 두 번째 나무는 2일에 심어지고 자라는 .. 2022. 5. 6. 이전 1 다음