링크: https://www.acmicpc.net/problem/3460
'각 테스트 케이스에 대해서, 1의 위치를 공백으로 구분해서 줄 하나에 출력한다. 위치가 낮은 것부터 출력한다.'
테스트케이스 수만큼 array에 입력값을 저장합니다.
String인 a를 배열로 만들고, 위치가 낮은 것부터 출력하기 위해 reversed()를 합니다.
enumrated()를 하면 (인덱스, 값) 형태로 바뀝니다. 만약 값이 1이면 인덱스를 출력하도록 하였습니다.
import Foundation
let T = Int(readLine()!)!
var array = [Int]()
for _ in 0..<T {
array.append(Int(readLine()!)!)
}
for a in array {
Array(String(a, radix: 2)).reversed().enumerated().forEach {
if $0.element == "1" {
print($0.offset, terminator: " ")
}
}
}
'알고리즘' 카테고리의 다른 글
[Swift] 백준 10870번 피보나치 수 5 (0) | 2022.03.18 |
---|---|
[Swift] 백준 2460번 지능형 기차 2 (0) | 2022.03.18 |
[Swift] 백준 2501번 약수 구하기 (0) | 2022.03.18 |
[Swift] 프로그래머스 - 네트워크 (0) | 2022.03.17 |
[Swift] 프로그래머스 - 타겟 넘버 (0) | 2022.03.17 |
댓글