-
Kotlin ๐ฌ ๋ฐฑ์ค 12๋จ๊ณ :: 1018 ๋ฒ2023. 6. 24. 23:46๋ฐ์ํ
์ฒด์คํ ๋ค์ ์น ํ๊ธฐ
๋ฌธ์ |
์ง๋ฏผ์ด๋ ์์ ์ ์ ํ์์ MN๊ฐ์ ๋จ์ ์ ์ฌ๊ฐํ์ผ๋ก ๋๋์ด์ ธ ์๋ M×N ํฌ๊ธฐ์ ๋ณด๋๋ฅผ ์ฐพ์๋ค. ์ด๋ค ์ ์ฌ๊ฐํ์ ๊ฒ์์์ผ๋ก ์น ํด์ ธ ์๊ณ , ๋๋จธ์ง๋ ํฐ์์ผ๋ก ์น ํด์ ธ ์๋ค. ์ง๋ฏผ์ด๋ ์ด ๋ณด๋๋ฅผ ์๋ผ์ 8×8 ํฌ๊ธฐ์ ์ฒด์คํ์ผ๋ก ๋ง๋ค๋ ค๊ณ ํ๋ค.
์ฒด์คํ์ ๊ฒ์์๊ณผ ํฐ์์ด ๋ฒ๊ฐ์์ ์น ํด์ ธ ์์ด์ผ ํ๋ค. ๊ตฌ์ฒด์ ์ผ๋ก, ๊ฐ ์นธ์ด ๊ฒ์์๊ณผ ํฐ์ ์ค ํ๋๋ก ์์น ๋์ด ์๊ณ , ๋ณ์ ๊ณต์ ํ๋ ๋ ๊ฐ์ ์ฌ๊ฐํ์ ๋ค๋ฅธ ์์ผ๋ก ์น ํด์ ธ ์์ด์ผ ํ๋ค. ๋ฐ๋ผ์ ์ด ์ ์๋ฅผ ๋ฐ๋ฅด๋ฉด ์ฒด์คํ์ ์์น ํ๋ ๊ฒฝ์ฐ๋ ๋ ๊ฐ์ง๋ฟ์ด๋ค. ํ๋๋ ๋งจ ์ผ์ชฝ ์ ์นธ์ด ํฐ์์ธ ๊ฒฝ์ฐ, ํ๋๋ ๊ฒ์์์ธ ๊ฒฝ์ฐ์ด๋ค.
๋ณด๋๊ฐ ์ฒด์คํ์ฒ๋ผ ์น ํด์ ธ ์๋ค๋ ๋ณด์ฅ์ด ์์ด์, ์ง๋ฏผ์ด๋ 8×8 ํฌ๊ธฐ์ ์ฒด์คํ์ผ๋ก ์๋ผ๋ธ ํ์ ๋ช ๊ฐ์ ์ ์ฌ๊ฐํ์ ๋ค์ ์น ํด์ผ๊ฒ ๋ค๊ณ ์๊ฐํ๋ค. ๋น์ฐํ 8*8 ํฌ๊ธฐ๋ ์๋ฌด๋ฐ์๋ ๊ณจ๋ผ๋ ๋๋ค. ์ง๋ฏผ์ด๊ฐ ๋ค์ ์น ํด์ผ ํ๋ ์ ์ฌ๊ฐํ์ ์ต์ ๊ฐ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
ํ์ด |
์น ํด์ผํ๋ ์นธ์ ๊ฐฏ์๋ฅผ ๋ฆฌํดํด์ฃผ๋ ํจ์๋ฅผ ์์ฑ(check() ํจ์)ํ๋ค. ์ดํ ์ฒด์คํ์ 8 x 8 ํฌ๊ธฐ๋ก ๋๋์ด ์์์ด 'W'์ผ๋, 'B'์ผ๋์ ์น ํด์ผํ๋ ์นธ์ ๊ฐฏ์๋ฅผ ๋ชจ๋ ์ ์ฅํ ํ ์ต์๊ฐ์ ์ถ๋ ฅํ๋ค.
๋ต์ |
import java.util.Scanner fun main() = with(Scanner(System.`in`)) { val n = nextInt() val m = nextInt() val board = mutableListOf<String>() repeat(n) { board.add(next()) } fun check(x: Int, y: Int, z: List<Char>): Int { var count = 0 for (i in 0 until 8) { for (j in 0 until 8) { val currentChar = board[i + x][j + y] if ((i % 2 == 0 && j % 2 == 0 && currentChar == z[0]) || (i % 2 == 0 && j % 2 != 0 && currentChar == z[1]) || (i % 2 != 0 && j % 2 == 0 && currentChar == z[1]) || (i % 2 != 0 && j % 2 != 0 && currentChar == z[0]) ) { continue } count += 1 } } return count } val result = mutableListOf<Int>() for (i in 0 until (n - 7)) { for (j in 0 until (m - 7)) { result.add(check(i, j, listOf('W', 'B'))) result.add(check(i, j, listOf('B', 'W'))) } } println(result.minOrNull()) }
๋ฐ์ํ'๐ Algorithm > ๐ ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Kotlin ๐ฌ ๋ฐฑ์ค 12๋จ๊ณ :: 2839 ๋ฒ (0) 2023.06.26 Kotlin ๐ฌ ๋ฐฑ์ค 12๋จ๊ณ :: 1436 ๋ฒ (0) 2023.06.25 Kotlin ๐ฌ ๋ฐฑ์ค 12๋จ๊ณ :: 19532 ๋ฒ (0) 2023.06.10 Kotlin ๐ฌ ๋ฐฑ์ค 12๋จ๊ณ :: 2231 ๋ฒ (0) 2023.06.09 Kotlin ๐ฌ ๋ฐฑ์ค 12๋จ๊ณ :: 2798 ๋ฒ (0) 2023.06.08