먼저 int형으로 입력을 받는다
1차원 배열에 for문을 활용하여 2씩 곱한걸 순서대로 넣어준다
arr = [1, 2, 4, 8, 16, 32, ...]
for문으로 배열의 뒤에서부터 돌면서 입력받은 숫자보다 작을때, if문 처리하면서 조건에 맞춰 0과 1을 출력해준다.
Error 132
Fatal error: Index out of range
처음에 이런 에러가 뜨길래 뭐가 문제지 한참 삽질했다.
알고보니 배열 문제였다.
배열의 크기를 고정해주지 않고 처음에 var arr: [Int] = []
로 사용하였더니 에러가 난 것 이었다.
var arr = [Int](repeating: 0, count: 28)
크기 고정은 이렇게 한다고 한다.
for문으로 print할때 그냥 하면 줄바꿈으로 출력된다.
줄바꿈없이 출력하려면!
print("1",terminator: "")
import Foundation
let input = Int(readLine()!)!
var arr = [Int](repeating: 0, count: 28)
arr[0] = 1
var two: Int = 1
var sum: Int = 0
for i in 1..<28{
two = two * 2
arr[i] = two
}
for i in (0...27).reversed(){
if input >= arr[i]{
if input-sum >= arr[i] {
print("1",terminator: "")
sum = sum + arr[i]
}
else if input-sum < arr[i] {
print("0",terminator: "")
}
}
}