일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 삼성
- sw expert
- readingbook
- englishbook
- STUDYENGLISH
- English
- D4
- BFS
- 원서읽자
- 코테 준비
- 쉬운 알고리즘 문제
- 원서
- 원서읽기
- nightroutine
- 알고리즘 문제
- 완전탐색
- 백준
- 직무면접
- MySQL
- swexpertacademy
- 코딩테스트
- SQL
- PyQt
- 프로그래머스
- dfs
- sw expert academy
- 코테
- 알고리즘
- the midnight library
- 코테 대비
- Today
- Total
목록알고리즘 문제 (57)
시나브로
Solution 총감독관은 필수적이기 때문에 배치한다 이에 따른 answer값과 space(고사장별 응시자 수를 저장하는 vector 변수)값을 연산해준다. 이후 남은 응시자수를 C로 나눈 몫이 부감독관의 수이기 때문에 연산을 해준다 단, 여기서 유의점은 몫이 나눠어 떨어지지 않을 경우, 부감독관이 한명 더 필요하다는 것이다. Key Point answer 변수형태를 long long으로 해야한다. 시험장 개수가 1000000개이며, 시험장별로 최대 응시자 수도 1000000이기에 long long 변수형태를 이용해야된다. 이를 사용하지 않을 경우, 바로 틀렸습니다가 뜬다 유의하길. 또한, 총감독관의 수를 뺀 이후 응시자의 값이 음수가 될 수 있음을 유의하라. #include #include #inclu..
이 문제는 전형적인 DP 문제입니다. 하지만, DP에 약한 저는 타블로그를 참고하여 포인트를 얻었습니다. ㅠㅜ Solution 문제를 읽어보면, 2가지의 규칙을 찾을 수 있습니다. 침공당한 도시의 인접한 도시는 침공할 수 없다. -> 침략을 하면 무조건 한칸은 뛰어야한다. 도시는 침공 당한 도시와 당하지 않는 도시로 나뉘어진다. 이 두가지 규칙을 가지고 DB식을 세울 수 있습니다. DB[i] = max(DB[i-1],DB[i-2]+problem[i]); DB[i]는 i-1번째 도시까지의 max값(DB[i-1])이랑 i-2번째 도시를 방문하고 i번째의 도시를 방문하는 값(DB[i-1]+problem[i])을 비교하여 더 큰값을 가지면 됩니다. Key Point 왜인지 모르겠지만, 타임오버가 났다. 이를 해..
처음 이 문제를 접했을 때, D2라는 수준을 감안하여 그냥 탐색해도 될까?라는 의문을 가지고 풀어 보았다. 운이 좋게도 이 솔류션으로도 해결이 가능했다. 하지만, 시간복잡도가 높기에 최적화를 해야될 것이다. Solution 최고값을 안다면, 그 값이 나오기 전까지 계속해서 구매한다면, 1만큼이라도 이익이 발생한다. 전체 값에서 최고값을 찾는다 최고값까지 모든 순간에 구매를 한다 최고값에 도착하면, 이후의 최고값을 다시 탐색한다 탐색한 결과값으로 최고값을 갱신하고 위의 과정을 배열이 끝날 때까지 반복한다 Key Point 입력을 보면 배열의 최고 길이는 1000000이고, 최대 매매가는 10000입니다. 이렇게만 보아도 int의 범위를 넘어갑니다. 그렇기에 sum(answer)의 자료형을 long long..