알고리즘(462)
-
15553 난로
성냥을 가지고 난로가 켜지는 최소 시간을 구하는 문제다. 일단 성냥을 가지고 있는 것 모두 사용하는 것이 올바른 방법이다. 벡터에 (시작하는 시간 - 전의 끝나는 시간)을 담아서 정렬을 시켜서, 가지고 있는 성냥만큼 cut이라는 배열에 넣어서 자를 타이밍을 초기화한다이후 처음부터 탐색을 시작하면서 계속 인덱스를 업데이트하면서 cut에 도달하면 인덱스를 초기화하면서 답을 더해갔다 문제: https://www.acmicpc.net/problem/15553https://github.com/surinoel/boj/blob/master/15553.cpp
2019.05.11 -
13459 구슬탈출
변수들이 많은 문제로, 구조체로 깔끔하게 정리해서 해결할 수 있다그리고 구슬들의 이동은 이전 구슬의 좌표를 이용해서 쉽게 이동한 좌표를 변경할 수 있다 문제: https://www.acmicpc.net/problem/13459https://github.com/surinoel/boj/blob/master/13459.cpp
2019.05.10 -
1850 최대공약수
1로 이뤄진 두 수의 최대공약수를 구하는 문제다. 1로 이뤄진 수의 성질을 이용하면 쉽게 찾을 수 있다.1로 이뤄진 수를 나눌 수 있는 수는 똑같이 1로 이뤄진 수이다111 111111의 두 수가 있다. 1이 3개, 1이 6개다. 1이 3개인 111의 큰 수로 모든 수를 나눌 수 있다111 11111111의 두 수가 있다. 오른쪽 1의 개수는 8개로 증가했다. 1이 1개인 수가 최대공약수가 된다. 규칙을 찾아보면 1의 개수로 이뤄진 개수들의 최대공약수를 구하면 된다첫 예에선 3, 6의 최대공약수인 3이 답이었고다음 예에선 3, 8의 최대공약수인 1이 답이었다 문제: https://www.acmicpc.net/problem/1850https://github.com/surinoel/boj/blob/maste..
2019.05.10 -
11509 풍선 맞추기
브루트포스는 N 제한에 걸려서 수행하지 못한다 화살의 성질을 이용해서 높이의 화살이 있다면 그 화살을 가지고 내려가는 형식으로 풀 수 있다 문제: https://www.acmicpc.net/problem/11509 https://github.com/surinoel/boj/blob/master/11509.cpp
2019.05.10 -
17178 줄서기
로직은 총 3가지로 나뉜다. 모든 인원을 탐색하고 나서 1. 대기줄이 비어있다면 GOOD 2. 대기줄이 비어있지 않지만 차례대로 pop하면서 정렬 순서와 일치한다면 GOOD 3. 2번을 만족하지 않는다면 BAD 문제: https://www.acmicpc.net/problem/17178 https://github.com/surinoel/boj/blob/master/17178.cpp
2019.05.08 -
9944 NxM 보드 완주하기
한칸씩 움직이면서 visit 배열을 초기화할 수 있다 문제: https://www.acmicpc.net/problem/9944 https://github.com/surinoel/boj/blob/master/9944.cpp
2019.05.08