문제 링크 (https://www.acmicpc.net/problem/20055)
삼성 역량 기출문제에 있길래 알고리즘 스터디 문제로 픽한 문제...! 그냥,,,,, 구현했다
더 보기 좋고 간결한 코드도 있는지 한 번 찾아봐야겠다!!
pair<int, int>를 자료형으로 갖는 벡터에 (first: 내구도 second: 로봇 존재 여부(1: 존재, 0: 존재 X))를 담아서 구현했다.
진행 순서는 아래와 같다.
1. 벨트가 로봇과 함께 한 칸 회전: 로봇과 함께!! 회전하는 것이므로 회전 결과 로봇이 내리는 위치에 도달하면 내려주어야 한다.
2. 로봇 이동: 가장 먼저 벨트에 올라간 로봇부터 이동해야 하는데 n번은 내리는 위치이므로 n번 ~ 2n번에는 당연히 로봇이 존재하지 않는다. 따라서 n-1번째부터 감소하며 이동시킨다. 이동 결과 로봇이 내리는 위치에 도달하면 내려준다.
3. 로봇 올리기
4. 내구도 검사: 내구도가 0인 칸의 개수가 k개가 되면 반복문 탈출
1번에서 내리는 위치에 도달하면 로봇 내려주는 걸 놓쳐서 자꾸 다른 답이 나왔다ㅠㅠ 문제를 잘 읽고 차분히 생각하자 제발 ~~~~~
[소스코드]
'ALGORITHM > BOJ' 카테고리의 다른 글
[BOJ] 2866번 문자열 잘라내기 (C++) (0) | 2021.11.18 |
---|---|
[BOJ] 16234번 인구 이동 (C++) (0) | 2021.11.18 |
[BOJ] 3055번 탈출 (C++) (0) | 2021.10.14 |
[BOJ] 10026번 적록색약 (C++) (0) | 2021.10.14 |
[BOJ] 14501번 퇴사 (C++) (0) | 2021.10.09 |