[구현 + 시뮬레이션] 백준 2578번: 빙고

2023. 5. 8. 22:15·코테

https://www.acmicpc.net/problem/2578

 

2578번: 빙고

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

www.acmicpc.net

난이도

실버 4

사용언어

Swift

카테고리

구현 + 시뮬레이션

풀이과정

이중 Int 배열의 빙고판을 만들고,

행, 열, 왼쪽 대각, 오른쪽 대각의 주어진 수를 카운팅 할 수 있는 변수를 만들어 준다.

입력된 수를 빙고판을 통해 좌표를 얻고, 해당 좌표를 통해 행과 열의 변수에 카운팅 한다.

만약, 좌표의 x, y 값이 같거나 둘의 합이 4인 경우 대각의 위치한 수이기 때문에 대각 변수에 추가로 카운팅 한다.

변수가 값이 5가 되는 변수가 3개 이상이 되었을 때 종료하면 끝.

var bingoBoard: [[Int]] = []
var visitedY: [Int] = Array(repeating: 0, count: 5)
var visitedX: [Int] = Array(repeating: 0, count: 5)
var visitedD1 = 0
var visitedD2 = 0
for _ in 0..<5 {
  let y = readLine()!.split(separator: " ").map { Int($0)! }
  bingoBoard.append(y)
}

var count = 0
var result = 0

for _ in 0..<5 {
  let numbers = readLine()!.split(separator: " ").map { Int($0)! }
  for number in numbers {
    if count >= 3 { break }
    result += 1
    let y = bingoBoard.firstIndex { $0.contains(number) }!
    let x = bingoBoard[y].firstIndex(of: number)!
    visitedY[y] += 1
    if visitedY[y] == 5 { count += 1 }
    visitedX[x] += 1
    if visitedX[x] == 5 { count += 1 }
    if y == x {
      visitedD1 += 1
      if visitedD1 == 5 { count += 1 }
    }
    if y + x == 4 {
      visitedD2 += 1
      if visitedD2 == 5 { count += 1 }
    }
  }
  if count >= 3 { break }
}
print(result)
저작자표시 (새창열림)

'코테' 카테고리의 다른 글

[이분 탐색] 백준 실버2 2805번: 나무 자르기(Swift)  (0) 2023.05.12
[완전 탐색] 백준 브론즈2 2231번: 분해합(Swift)  (0) 2023.05.12
[DFS] 백준 9466번: 텀 프로젝트(Swift)  (0) 2022.12.03
[DFS] 백준 1068번: 트리(Swift)  (0) 2022.11.18
[BFS + 구현] 백준 2573번: 빙산  (0) 2022.11.14
'코테' 카테고리의 다른 글
  • [이분 탐색] 백준 실버2 2805번: 나무 자르기(Swift)
  • [완전 탐색] 백준 브론즈2 2231번: 분해합(Swift)
  • [DFS] 백준 9466번: 텀 프로젝트(Swift)
  • [DFS] 백준 1068번: 트리(Swift)
Esiwon
Esiwon
iOS 개발 블로그
  • Esiwon
    시원한 코드 기록
    Esiwon
  • 전체
    오늘
    어제
    • 분류 전체보기 (70)
      • iOS&Swift (24)
      • git & github (1)
      • 코테 (41)
      • 네부캠 회고 (4)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 깃허브
  • 공지사항

  • 인기 글

  • 태그

    백준
    Race Condition
    동시성
    재귀
    다이나믹 프로그래밍
    노드
    회고
    완전탐색
    비동기
    알고리즘
    BFS
    dfs
    photos
    실버
    PhotoKit
    이분탐색
    GCD
    구현
    코테
    photoUI
    네부캠
    ios
    챌린지
    그리디
    코딩테스트
    Swift
    탐색
    브루트포스 알고리즘
    Combine
    Property wrapper
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Esiwon
[구현 + 시뮬레이션] 백준 2578번: 빙고
상단으로

티스토리툴바