-
#17822 원판 돌리기Code/BOJ 2019. 12. 25. 23:00728x90반응형
문제 요약 및 알고리즘 핵심
1. 원판에 대한 정보가 입력값으로 주어지고 또 명령값 x,d,k에 의해 최종적으로 갱신되어 남아있는 원판의 점수의 합을 출력하는 문제이다.
2. 문제에서 명령값으로 x,d,k값을 주는데 x값은 원판 번호를 뜻하고, d는 해당 원판의 회전방향 (시계 or 반시계), k는 얼만큼 회전시키는지이다.
3. 따라서 해당 조건을 쉽게 만족시킬 수 있도록 자료구조와 알고리즘 설계를 간편하게 해야했다. 원판을 펼쳐 2차원 배열로 표현한 것이 핵심이었다. 그 후 시계 반시계방향 회전을 적용할 수 있었고 k번회전, 평균에 맞춰 원판 값 갱신하기 등 다양한 요구사항을 문제의 요구에 맞춰 구현만 하면 된다.
알고리즘 순서
1. x의 배수에 해당하는 원판을 모두 시계 또는 반시계방향으로 k번 회전을 시킨다. (k칸만큼 회전)
2. 모든 행렬값에 대해 인접한 값이 있는지 체크해 준다. (visit배열을 만들어 방문처리)
3. 만약 인접한 값이 없는 경우 평균을 구하고 0이 아닌 수들을 평균보다 큰수는 1빼고 작은 수는 1더한다.소스코드
728x90반응형'Code > BOJ' 카테고리의 다른 글
#2213 트리의 독립집합 (0) 2019.12.30 #1102 발전소 (0) 2019.12.30 #1520 내리막길 (0) 2019.12.19 #2668 숫자 고르기 (0) 2019.12.17 #1963 소수 경로 (0) 2019.12.17