각 행을 |(or)비트연산을 해주어 합쳐진 지도의 각 행을 나타내는 Int들의 배열 result_num을 구성한다.
이제 각 행을 나타내는 숫자를 2진수로 보고, 1의 위치에는 "#"으로, 0의 위치에는 " "로 대치해줘야한다.
간편한 계산을 위해, 각 Int의 맨 뒷자리에서부터 체크하여 임시 String 변수 now_row에 저장하고, reversed()연산 후 String()으로 형변환하여 최종 result배열에 추가하였다.
체크하고있는 숫자인 now_num이 0이 되면, 그 후로는 모든 칸이 0일 것이고, " "으로 채워주면 된다. 따라서 Stirng(repeating: " ", count: n - j)로 한번에 처리후 break하였다.
1. 맨 뒷자리부터 1 인지 0인지 체크 ( 2로 나눈 나머지로 ), >>연산으로 이미 체크한 비트는 버림
2. >>로 체크한 비트는 버리며, 숫자가 0이 되면, 남은 칸들은 모두 0일 것이므로 " "으로 채우고 break
3. 맨뒤부터 체크했으므로, 각 행을 모두 체크할 때마다 String(s.reversed())으로 제대로 뒤집어진 문자열을 result배열에 추가
2022 KAKAO TECH INTERNSHIP: 성격 유형 검사하기 (0) | 2022.09.14 |
---|---|
2019 KAKAO BLIND RECRUITMENT : [1차] 다트 게임 (0) | 2022.09.12 |
백준 1939: 중량제한 (Swift) (0) | 2022.09.04 |
백준 2473: 세 용액 (Swift) (0) | 2022.09.04 |
백준 7453: 합이 0인 네 정수 (Swift) (0) | 2022.08.27 |