[프로그래머스] [Swift] 카카오 1차 비밀지도

김형준·2023년 6월 22일
0

코딩문제

목록 보기
8/9

문제해결을 위한 공부:
arr1과 arr2가 겹치는 만큼 "#"를 출력해주는 문제이다.
10진수를 2진수로 변환을 위한 radix:2
for 반복문
Index

func solution(_ n:Int, _ arr1:[Int], _ arr2:[Int]) -> [String] {
    
    var result = [String]() //정답배열 만들기
    
    for i in 0..<n { 
        
        var kai1 = (String(arr1[i] | arr2[i], radix: 2)) //10진법을 2진법으로 변환
        
        var a1 = String() //"#" 넣어주기 위한 String 변수만들기
        
        for j in kai1 {
        
            if j == "1" { // 2진법인 1과 0 중에 1이면  "#" 넣어주기
                a1 += "#"
            } else {a1 += " "} // 1이 아니면 " " 빈칸 넣어주기
        }
        
        if a1.count != n { // 빈 공백 만큼 앞에다가 " " 추가해주기
            while a1.count < n { a1.insert(" ", at: a1.startIndex) }
            
            result.append(a1)
            
        } else { result.append(a1)}
    }
    return result //결과값 반환하기
}

profile
기억보단 기록, 느리더라도 꾸준히

0개의 댓글