728x90
https://www.acmicpc.net/problem/1051
문제 접근
문제 조건에 맞는 정사각형 중 크기가 최대인 정사각형의 크기를 구하는 문제
한 변의 최대길이에서 점점 내려가며 조건을 만족하면 최대값을 비교하는 식으로 구현
근데 풀기전에 다른사람 코드를 봐버림...
정답 코드
import java.util.*
import kotlin.math.max
import kotlin.math.min
//꼭짓점의 값이 모두 같은 가장 큰 크기의 정사각형 찾기
fun main(args: Array<String>): Unit = with(Scanner(System.`in`)) {
val (n, m) = readLine()!!.split(" ").map { it.toInt() }
val map = Array(n) { readLine()!!.toCharArray() }
var max = 0
for (i in 0 until n){
for (j in 0 until m){
//정사각형의 한 변의 최대길이
val maxSize = min(m-j,n-i)
for (k in maxSize downTo 1){
if(map[i][j] == map[i+k-1][j+k-1] &&
map[i][j] == map[i][j+k-1]&&
map[i][j] == map[i+k-1][j]){
max = max(k*k, max)//조건을 만족하는 최대값
}
}
}
}
print(max)
}
참고한 자료
https://youjourney.github.io/archivers/BOJ1051
비고
문제풀이 전에 정답지가 있는지 확인하고 푸는데 있는지만 확인하고 보지말고 혼자 풀어야겠다...미리 보니까 정답 코드가 머리에서 안떠나..
'알고리즘 > 백준 문제풀이' 카테고리의 다른 글
백준 2576 색종이-2(Kotlin) (0) | 2023.02.02 |
---|---|
백준 2246 - 콘도 선정(Kotlin) (0) | 2023.01.31 |
백준 2628 - 종이 자르기(Kotlin) (0) | 2023.01.31 |
백준 2563 - 색종이(Kotlin) (0) | 2023.01.30 |
백준 1418 k-세준수(Kotlin) (0) | 2023.01.30 |