-
https://www.acmicpc.net/problem/14891
14891번: 톱니바퀴
총 8개의 톱니를 가지고 있는 톱니바퀴 4개가 아래 그림과 같이 일렬로 놓여져 있다. 또, 톱니는 N극 또는 S극 중 하나를 나타내고 있다. 톱니바퀴에는 번호가 매겨져 있는데, 가장 왼쪽 톱니바퀴
www.acmicpc.net
https://github.com/JUNGSOONIL/JAVA/blob/main/BAEKJOON%2014891
GitHub - JUNGSOONIL/JAVA: JAVA 소스 코드
JAVA 소스 코드. Contribute to JUNGSOONIL/JAVA development by creating an account on GitHub.
github.com
해당 문제는 자석(톱니바퀴)의 정보가 주어졌을 때
해당 부분을 회전시킨 뒤 젤 상단 값이 1인 부분에 대해
조건에 맞는 계산식을 해서 계산을 하는 문제다.
SW Academy 4013 특이한 자석과 동일한 문제다.
https://blog.naver.com/soonil0119/222522895025
SW Academy 4013 특이한 자석 JAVA
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWIeV9sKk...
blog.naver.com
하나의 자석이 1칸 회전할 때, 붙어있는 자석은 자성이 다를 경우 반대 방향으로 1칸 회전한다.
1번 자석은 1점 2번 자석은 2점 3번 자석은 4점 4번 자석은 8점을 얻을 수 있다.
시뮬레이션 문제며 처음 자석의 정보가 주어지는데
해당 정보를 2차원 배열로 처리하였으며,
서로 인접한 부분에 대해서는 visit 배열을 두었다.
1. 입력 처리 진행
2. 해당 자석들이 인접한지를 체크해 준다.
3. 처음 시작 자석을 회전 시킨다.
4. 시작 자석 기준 오른쪽 자석들을 인접 여부 체크를 통해 자성이 다르면 반대 방향으로 회전시킨다.
5. 시작 자석 기준 왼쪽 자석들을 인접 여부 체크를 통해 자성이 다르면 반대 방향으로 회전시킨다.
6. 입력값까지 2~5번을 반복한다.
7. 반복문을 돌려 2차원 배열의 젤 처음 값을 가져오고 해당 값을 계산해서 더해준다.
728x90'알고리즘 > Baekjoon' 카테고리의 다른 글
Baekjoon 11401 이항 계수 3 JAVA (0) 2021.11.14 Baekjoon 17143 낚시왕 JAVA (0) 2021.11.14 Baekjoon 4358 생태학 JAVA (0) 2021.11.14 Baekjoon 11758 CCW JAVA (0) 2021.11.14 Baekjoon 2468 안전영역 JAVA (0) 2021.11.13 댓글