[Kotlin] 백준 - 1236 성지키기

2024. 5. 23. 20:03· Coding Test
반응형
영식이는 직사각형 모양의 성을 가지고 있다.
성의 1층은 몇 명의 경비원에 의해서 보호되고 있다. 영식이는 모든 행과 모든 열에 한 명 이상의 경비원이 있으면 좋겠다고 생각했다.
성의 크기와 경비원이 어디 있는지 주어졌을 때, 몇 명의 경비원을 최소로 추가해야 영식이를 만족시키는지 구하는 프로그램을 작성하시오.

첫째 줄에 성의 세로 크기 N과 가로 크기 M이 주어진다. N과 M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 성의 상태가 주어진다. 성의 상태는. 은 빈칸, X는 경비원이 있는 칸이다.

첫째 줄에 추가해야 하는 경비원의 최솟값을 출력한다.
https://www.acmicpc.net/problem/1236

 

처음에 단순하게 Column만 바라보고 단순하게 풀었으나 Row에 대해서도 모두 파악해줘야 정확한 답을 얻을 수 있습니다.

배열 조건 체크하는 방식으로 구성하기 위해 먼저 Row, Column에 대한 각각의 BooleanArray를 선언했습니다.

    val (N, M) = readLine().split(" ").map { it.toInt() }
    val castle = Array(N) { readLine().toCharArray() } //현재 구성을 입력받는다.
    val row = BooleanArray(M) { false }
    val col = BooleanArray(N) { false }

 

이제 가로축, 세로축에 대한 for문을 돌면서 Row, Column에 X가 있으면 true 처리해줍니다.

for (i in 0 until N) for (j in 0 until M) {
    if (castle[i][j] == 'X') {
        col[i] = true
        row[j] = true
    }
}


그리고 마지막에는 col과 row별 False 총개수를 서로 비교하여 더 큰 값을 반환해 주면 됩니다.

println(max(row.count { !it }, col.count { !it }))

 

반응형
저작자표시 (새창열림)
'Coding Test' 카테고리의 다른 글
  • [Kotlin] 소수 구하기 - 에라토스테네스의 체
  • [Kotlin] 백준 - 10431 줄세우기
  • [Kotlin] BOJ 11655 - ROT13 알고리즘 풀이
  • [Kotlin] - 파스칼의 삼각형 구현
SeungYong.Lee
SeungYong.Lee
반응형
SeungYong.Lee
Win-Dev
SeungYong.Lee
전체
오늘
어제
  • All (229) N
    • Development (129) N
      • Android (125) N
      • iOS (0)
      • Flutter (4)
      • Backend (0)
    • Algorithm (5)
    • Knowledge (5)
      • IT (2)
      • Science (0)
      • ETC & Tip (3)
    • Today I Learn (28)
    • Coding Test (62)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 안녕하세요. 반갑습니다 :)

인기 글

태그

  • exception
  • hilt
  • Animation
  • Widget
  • Java
  • 프로그래머스
  • Flutter
  • 코틀린
  • Imageview
  • HTTP
  • compose
  • Kotlin
  • Retrofit
  • dfs
  • Android
  • 비동기처리
  • glance
  • Collection
  • coroutine
  • 코딩테스트

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
SeungYong.Lee
[Kotlin] 백준 - 1236 성지키기
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.