본문 바로가기
Algorithm/문제풀이_백준

Swift) 백준 2309번 (일곱 난쟁이)

by Joahnee 2021. 8. 26.

요구능력 : 브루트포스 알고리즘을 알고있느냐

 

코드설명 : 

 

result배열을 만들어서 랜덤으로 선택한 값을 가지고 있지 않으면 result배열에 저장해주고 sum에 더해준다.

그렇게 7번 더해주고 while문을 빠져나왔을 때 sum이 100이면 바깥의 while문을 탈출해준다.

왜 랜덤으로 풀었냐고 물으면 키가 모두 다르고 정답이 여러가지인 경우에는 아무거나 출력가능했기 때문이다.

 

후기 : 랜덤으로 풀어버렸다.

 

var result: [Int] = []
var arr: [Int] = []
for _ in 1...9 {
    arr.append(Int(readLine()!)!)
}

while true{
    var sum = 0
    var j = 0
    
    result = Array(repeating: 0, count: 7)
    while j < 7 {
        let a = arr.randomElement()!
        if result.firstIndex(of: a) == nil {
            result[j] = a
            sum += result[j]
            j += 1
        }
    }
    if sum == 100 {
        break
    }
}
result.sort()
for i in 0..<7 {
    print("\(result[i])")
}

댓글