본문 바로가기

이론 공부 내용 정리38

1. c++ 라이브러리<stack> 보호되어 있는 글 입니다. 2022. 7. 27.
백준 1107_리모컨 문제 링크 문제한줄요약 고장난 버튼을 제외하고 최소한의 버튼을 눌러 시작번호에서 해당 번호로 이동시킨다. 내가 생각한 조건 시작 번호와 해당 번호가 같으면 0을 출력한다. 그리고 고장난 버튼이 0개일 때는 버튼을 입력받지 않게 처리한다. 최소한의 버튼 횟수를 구하기 위해 (해당 번호) - (버튼을 눌러 만들 수 있는 수)가 최소인 것, 버튼을 눌러 만들 수 있는 수 2가지의 기준을 세워 최소값을 구하려 했었다. 그리고 다른 테스트 케이스에서 버튼을 눌러 만들 수 있는 수들의 합/차라는 기준을 추가해야 한다는 것을 알고 구현 과정에 문제가 생겨서 링크를 참고했다. 작성한 코드 1234567891011121314151617181920212223242526272829303132333435363738394041.. 2022. 7. 22.
백준 1931_회의실 배정 문제 링크 ** 문제한줄요약 ** 주어진 시간 내 최대 회의 수를 구해라. (회의간 겹치지 않음, i-1번째 끝나는 시간 = i번째 시작 시간, 중단되지 않음) 내가 생각한 조건 일단 회의시간을 일정 기준에 맞게 정렬한 뒤 해당 회의에서 가장 가까운 회의들을 순차적으로 비교하면서 카운트하면 답이 나올 것이라 생각했다. 즉, 해당 회의에서 가장 나은 선택을 하는 것이므로 그리디 알고리즘을 사용하는 게 나을 것 같다고 생각했다. 처음에 시작 시간을 기준으로 정렬해서 조건을 따지려고 했었다. 그러나 시작 시간으로 정렬하여 고민한 결과 i번째 회의 다음에 올 수 있는 모든 회의의 경우의 수를 넣어 계산해야 할 것 같았고, 그러면 너무 비효율적으로 계산되는 생각이 들었다. 그리고 계속 고민하다 방법이 잘 생각나지.. 2022. 7. 17.
백준 11047_동전 0 문제 링크 문제 한 줄 요약 N종류 동전의 최소 개수로 K를 만들어라. (동전의 개수가 무한대이므로 만들 수 없는 경우는 존재하지 않는다.) 내가 생각한 조건 최소 개수라 했으므로 입력받은 N을 오름차순으로 정렬한 후, 가장 많은 값부터 넣어가면서 비교하면 될 것 같았다. (오름차순이라 정의되어 있으므로 다시 정렬할 필요는 없음.) 가장 많은 값부터 임의로 넣어가며 작업하면 될 것이라 생각했기 때문에 해당 상황에서 가장 적합한 값을 찾는 그리디 알고리즘이 적합할 것이라 생각했다. 작성한 코드 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849#include #include #include usin.. 2022. 7. 14.