적당한 고통은 희열이다

- 댄 브라운 '다빈치 코드' 중에서

Algorithm/Baekjoon

[Swift 알고리즘] 백준 1213 팰린드롬 만들기

hongssup_ 2024. 1. 18. 00:19
반응형

그리디 Silver 3

백준 1213 팰린드롬 만들기

* 팰린드롬 : 거꾸로 읽어도 동일한 문장, 숫자, 문자열 ex) 이효리, 토마토

 

임한수와 임문빈은 서로 사랑하는 사이이다.

근친상간 문제 인가요..? (개소리임 제송 ㅎ)

// 69108KB 8ms
let name = readLine()!
print(palindrome(word: name))

func palindrome(word: String) -> String {
    var dict = [Character: Int]()
    var oddNumberCount: Int = 0
    var center: String = ""
    var result: String = ""
    
    for i in name {
        if let _ = dict[i] {
            dict[i]! += 1
        } else {
            dict[i] = 1
        }
    }
    
    for (key, value) in dict.sorted(by: {$0.0 < $1.0}) {
        if value % 2 == 1 {
            center = String(key)
            oddNumberCount += 1
            if oddNumberCount > 1 {
                return "I'm Sorry Hansoo"
            }
        }
        result += String(repeating: String(key), count: value / 2)
    }
    return (result + center + String(result.reversed()))
}

 

 

728x90
반응형