관리 메뉴

나만을 위한 블로그

[Algorithm] 프로그래머스 - 한 번만 등장한 문자 (Kotlin) 본문

알고리즘 문제 풀이/프로그래머스

[Algorithm] 프로그래머스 - 한 번만 등장한 문자 (Kotlin)

참깨빵위에참깨빵_ 2023. 1. 8. 23:22
728x90
반응형
문자열이 매개변수로 주어진다. 문자열에서 한 번만 등장하는 문자를 사전 순으로 정렬한 문자열을 리턴하는 solution()을 완성하라. 한 번만 등장하는 문자가 없을 경우 빈 문자열을 리턴한다

 

 

공책에 로직만 써보다가 풀지 못했다. 인터넷에 떠도는 풀이는 아래와 같다.

https://velog.io/@jsj3282/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%ED%95%9C-%EB%B2%88%EB%A7%8C-%EB%93%B1%EC%9E%A5%ED%95%9C-%EB%AC%B8%EC%9E%90

 

프로그래머스 한 번만 등장한 문자

문자열 s가 매개변수로 주어집니다. s에서 한 번만 등장하는 문자를 사전 순으로 정렬한 문자열을 return 하도록 solution 함수를 완성해보세요. 한 번만 등장하는 문자가 없을 경우 빈 문자열을 retur

velog.io

 

class Solution {
    fun solution(s: String): String {
        var answer = ""
        val arr = IntArray(26)
        for (i in 0..25) {
            arr[i] = 0
        }
        for (element in s) {
            arr[element.code - 97] += 1
        }
        for (i in 0..25) {
            if (arr[i] == 1) {
                answer += (i + 97).toChar()
            }
        }
        return answer
    }
}

 

알파벳 개수만큼 IntArray를 만들고 각 배열에 인덱스를 붙이는 것까진 알겠는데 그 다음부터는 무슨 코드인지 잘 모르겠다.

다른 사람의 풀이는 아래와 같다.

 

class Solution {
    fun solution(s: String) = s.toSet()
        .filter { uniqueChar ->
            s.count { it == uniqueChar } == 1
        }.sorted().joinToString("")
}

 

반응형
Comments