상세 컨텐츠

본문 제목

백준 10026: 적록색약 (Swift)

Swift알고리즘

by 앱등개발자IOS 2022. 8. 19. 16:09

본문

총 두가지의 경우로 탐색을 해야하는 문제이다.

1. 색약이 아닌경우

2. 색약인 경우

 

Swift로 풀이할 때는, 2차원 좌표를 Point라는 별칭 type으로 관리한다.

typealias Point = (Int, Int)

 

visited배열을 두고, 2중 for문을 돌리며 visited가 false인 칸을 만날 때마다  bfs(_ start: Point)를 호출한다.

이때, 색약이 아닌경우는

arr[start.0][start.1] == arr[now_x][now_y]로 비교하면 되지만,

 

색약인 경우는 R과 G를 같은 색으로 봐야한다.

2차원 배열 전체를 돌며 R을 G로/ 혹은 G를 R로 바꾸어 똑같이 탐색하는 방법도 있지만,

그보다는 ["R": 0, "G": 0, "B": 1]과 같은 Dictionary를 하나 두어 비교하는데 사용하는 것이 효율적일 것이다.

'Swift알고리즘' 카테고리의 다른 글

백준 14502: 연구소 (Swift)  (0) 2022.08.20
백준 1806: 부분합 (Swift)  (0) 2022.08.20
백준 1654: 랜선 자르기 (Swift)  (0) 2022.08.17
백준 2470: 두 용액 ( Swift )  (0) 2022.08.15
백준 3273: 두수의 합 (Swift)  (0) 2022.08.15

관련글 더보기