상세 컨텐츠

본문 제목

카카오 2018 KAKAO BLIND RECRUITMENT : [1차] 프렌즈4블록

Swift알고리즘

by 앱등개발자IOS 2022. 6. 6. 20:53

본문

테스트케이스 5,6,7에서 계속 실패가 뜨는 것을, 비어있는 칸을 "O"로 채워넣은 것 때문임을 모르고 한시간을 헤맸다...

 

대문자 A~Z가 모두 사용되는 것이 아니라,  예시에 사용된 카카오 캐릭터 8개의 첫 단어만 사용되는 줄 알고, "O"로 빈칸을 채워넣었었다....

이 때문에 예시 5,6,7이 실패가 뜨는 것을 모르고 헤메고있었다.....

이후 빈 칸을 영어 문자가 아닌 "*"로 바꾸니 바로 통과가 되었다.

 

1. 먼저 문자열로 주어진 배열을 한글자씩 쪼개어 2차원 String 배열로 바꾸어준다.

2. 파괴될 블록을 모두 to_delete에 담는다

-> 그때 그때 파괴하지 않는 이유는, 여러 2x2 영역에 겹쳐서 포함될 블록이 있을 수 있으므로, 미리 지우면 안됨

-> 지울 블록의 좌표는 겹쳐서 지우지 않기 위해 Set<[Int]>자료형을 사용

3. 지울 블록 수만큼 result에 더해줌

4. Set에 있는 모든 좌표들에 대하여, 2차원 배열에 "*"로 갱신

5. 아래서부터 위로 올라오며 빈 칸을 채워 내림

#### 중요 #### 그동안 지나친 "*" 의 갯수만큼 맨 위에 "*"로 채워줘야한다!!

 

관련글 더보기