본문 바로가기

알고리즘/백준 문제풀이

백준 1343 - 폴리오미노(Kotlin)

728x90

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

 

1343번: 폴리오미노

첫째 줄에 사전순으로 가장 앞서는 답을 출력한다. 만약 덮을 수 없으면 -1을 출력한다.

www.acmicpc.net

문제접근

X의 개수가 짝수면 A와 B로 표현가능한데 홀 수면 -1을 출력하는 문제라고 생각해서 구현하다가

그냥 XXXX는 AAAA, XX는 BB로 바꾸면 안되나 싶어서 replace를 활용하고, 만약 X가 홀 수여서 X가 남아있으면 -1을 출력하는식으로 구현했다.

 

정답코드

import java.util.*
//XXXX -> AAAA
//xx -> BB

fun main(args: Array<String>): Unit = with(Scanner(System.`in`)) {
    val input = readLine()!!.replace("XXXX", "AAAA").replace("XX", "BB")
    if (input.contains('X'))
        print(-1)
    else
        print(input)

}

비고

어떤 알고리즘으로 풀까를 고민하기보단 어떤식으로 문제에 접근할까를 고민하다 알고리즘이 자연스럽게 떠오르는 방식이 효율적인듯...?

'알고리즘 > 백준 문제풀이' 카테고리의 다른 글

백준 1418 k-세준수(Kotlin)  (0) 2023.01.30
백준 1531 - 투명(Kotlin)  (0) 2023.01.29
백준 1439번 - 뒤집기(Kotlin)  (0) 2023.01.29
백준 1316 - 그룹 단어 체커(kotlin)  (0) 2023.01.29
백준 - 1120 (kotlin)  (0) 2023.01.28