반응형
백준 2160번 문제입니다. (solved.ac) 기준 브론즈 1 문제입니다.
https://www.acmicpc.net/problem/2160
문제
문제 접근
그림은5 * 7의 크기이고 1 * 1 크기에 . 혹은 X가 그려져있습니다.
그림의 개수인 n을 입력 받고 n개의 그림들 중 차이가 가장 적은 두 개의 그림을 찾아 해당 그림의 번호들을 작은 순서로 출력하는 문제입니다.
그림의 개수인 n은 최대 50이고 그림의 크기도 5 * 7 이므로 완전 탐색을 하여 모든 인덱스를 직접 확인해보고 차이가 가장 적은 두 그림의 번로를 찾도록 구현하였습니다.
정답 코드
fun main() {
var paintingCnt = readln().toInt()
val paintingList = mutableListOf<MutableList<MutableList<Char>>>()
var minDiffCnt = 36
val diffNumList = IntArray(2, { 0 })
repeat(paintingCnt) {
val curList = mutableListOf<MutableList<Char>>()
for (line in 0 until 5) {
var curLine = readln().toMutableList()
curList.add(curLine)
}
paintingList.add(curList)
}
for (i in 0 until paintingCnt) {
for (j in i + 1 until paintingCnt) {
val curDiffCnt = diffCnt(paintingList[i], paintingList[j])
if (curDiffCnt < minDiffCnt) {
minDiffCnt = curDiffCnt
diffNumList[0] = i + 1
diffNumList[1] = j + 1
}
}
}
diffNumList.forEach {
print("$it ")
}
}
fun diffCnt(firPainting: MutableList<MutableList<Char>>, secPainting: MutableList<MutableList<Char>>): Int {
var diffCnt = 0
for (i in 0 until 5) {
for (j in 0 until 7) {
if (firPainting[i][j] != secPainting[i][j]) diffCnt++
}
}
return diffCnt
}
반응형
'알고리즘 문제풀이[Algorithm]' 카테고리의 다른 글
[백준] 2961번 도영이가 만든 맛있는 음식(완전탐색 - DFS)[Kotlin - 코틀린] (0) | 2022.07.06 |
---|---|
[백준] 1296번 팀 이름 정하기(브루트포스 - 완전탐색)[Kotlin - 코틀린] (0) | 2022.07.06 |
[백준] 2635번 수 이어가기(브루트포스 - 완전탐색)[Kotlin - 코틀린] (0) | 2022.07.06 |
[백준] 1476번 날짜 계산(브루트포스 - 완전탐색)[Kotlin - 코틀린] (0) | 2022.07.05 |
[백준] 싱기한 네자리 숫자[Kotlin - 코틀린] (0) | 2022.07.05 |
최근댓글