Kotlin Algorithm

    [Kotlin] 두개의 String이 있다고 했을 때, 하나의 String에 대해 문자를 하나 이하로 추가하거나 지우거나 다른 값으로 바꾸었을 때 동일한지 확인

    문제 두개의 String이 있다고 했을 때, 하나의 String에 대해 문자를 하나 이하로 추가하거나 지우거나 다른 값으로 바꾸었을 때 동일한지 확인 - "abcd", "abc" 이면 문자 하나가 차이나므로 true반환 - "abcd", "acbd" 이면 문자가 2개를 바꿔야 하므로 false 반환 문제 풀기 전 확인 사항 1. 공백이 있는지 확인해야 함. 공백은 없음 2. 대소문자 구분이 있는지 확인해야 함. 대소문자 구분 있음 문제 풀이1 첫 문제풀이는 문제 풀이의 경우를 세가지로 나눈다. 1. 문자열의 길이가 같은 경우 2. 문자열의 길이가 1 차이 나는 경우 3. 문자열의 길이가 2 이상 차이 나는 경우 각 방식은 다음과 같이 구현한다. 1. 문자열의 길이가 같은 경우 - 포인터를 1씩 증가시키면..

    [Kotlin] 공백을 "%20"으로 대체해 Url로 만들기

    문제 문자열에 들어았는 모든 공백을 %20으로 바꾸기. %20으로 바꾸었을 때만큼의 크기를 가진 문자열(String 혹은 CharArray)과, 실제 문자열의 크기(size)가 주어진다. 문제 풀기 전 확인 사항 1. input은 String인가 아니면 CharArray인가? 문제 풀이1 input이 String이라고 가정하면, 아래와 같이 풀 수 있다. Kotlin의 String은 Immutable 하기 때문에, String에서 CharArray를 가져오려면 새로운 CharArray를 할당해야 하므로 아래와 같이 새로운 공간을 할당해야 한다. class Solution() { fun urlify(input: String, size: Int): String { var charArrayIndex = 0 v..

    [Kotlin] 중복 문자열 확인 알고리즘

    문제 문자열이 주어졌을 때, 이 문자열에 같은 문자가 중복되어 등장하는지 확인하는 알고리즘을 작성하라 문제 풀기 전 확인 사항 문자열이 ASCII인지 아니면 유니코드인지 확인 필요 공백은 문제 풀이1 : Map 자료 구조를 사용한 문제 해결 풀이 만약 문자열이 유니코드로 인코딩되어 있다면, 최대 4바이트이기 때문에 Map 자료 구조를 사용하는 것이 좋다. class Solution() { fun hasDuplicateCharacter(string : String) : Boolean { val map : MutableMap = mutableMapOf() for(char in string) { char.code if(map[char] == true) return true else map[char] = tru..