MUKER_DEV with iOS

[swift] 백준 - 2578번: 빙고 본문

🤖 알고리즘/BAEKJOON

[swift] 백준 - 2578번: 빙고

MUKER 2023. 6. 9. 09:42
 

2578번: 빙고

첫째 줄부터 다섯째 줄까지 빙고판에 쓰여진 수가 가장 위 가로줄부터 차례대로 한 줄에 다섯 개씩 빈 칸을 사이에 두고 주어진다. 여섯째 줄부터 열째 줄까지 사회자가 부르는 수가 차례대로

www.acmicpc.net


성공 풀이

var hor = [[Int]](), ver = [[Int]]()
// 가로줄 배열 만들기
for _ in 0..<5 { hor.append(readLine()!.split(separator: " ").map { Int($0)! }) }
// 새로줄 배열 만들기
for i in 0..<5 {
    var arr = [Int]()
    for j in 0..<5 { arr.append(hor[j][i]) }
    ver.append(arr)
}
// 대각선 줄 만들기
ver.append((0..<5).map { hor[$0][$0] })
ver.append((0..<5).map { hor[$0][4-$0] })
// 모든 줄 합치기
var total = hor+ver, count = 1

loop: for _ in 0..<5 {
    let nums = readLine()!.split(separator: " ").map { Int($0)! }
    for num in nums {
    	// total을 모두 검색하며 [0,0,0,0,0]이 3개 나왔을 때 3빙고가 되기 때문에 break
        for i in 0..<total.count { total[i] = total[i].map { $0==num ? 0 : $0 } }
        if total.filter({ $0==[0,0,0,0,0] }).count >= 3 {
            print(count)
            break loop
        }
        count += 1
    }
}