알고리즘

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

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

    [Kotlin] String이 Palindrome Permutation인지 확인하기

    문제 String이 주어졌을 때 String이 Palindrome Permutation인지 확인하라 *Palindrome이란 문자열이 좌우 대칭인 경우를 뜻한다. 문자열이 "abcc ba" 일 경우 palindrome이다. *Permutation이란 문자열의 순서를 바꾸는 것을 뜻한다. 예를 들어 "abc"를 "cba"로 바꾸는 것을 뜻한다. *Palindrome Permutation은 문자열의 순서를 바꿨을 때 문자가 좌우 대칭(Palindrome)인지 확인하는 것이다. 예를 들어 "aabb cc"일 경우 이 문자열의 순서를 "abccba"로 바꿀 수 있으므로 Palindrome Permutation이다. 문제 풀기 전 확인 사항 1. 대소문자를 구분해야 되는지 확인 2. 띄워쓰기를 문자로 포함해야 되..

    [Kotlin] 문자열 순열 확인 알고리즘 : String Permutation 이란 무엇인가?

    문제 두 개의 문자열이 주어졌을 때 순열임을 확인하라. *순열(Permutation) : 문자열의 구성이 다른 문자열과 같은지 확인 문제 풀기 전 확인 사항 1. 문자열의 범위는 어떻게 되는가? a-Z 인가? 아니면 다국어가 포함되는가? 1) a-Z라고 본다. ASCII 범위이다. 2) 다국어가 포함된다고 본다. 2. 공백은 어떻게 처리하는가? 공백은 없다고 가정한다. 3. 둘다 빈 문자열일 경우 어떻게 처리하는가? Permutation으로 본다 문제 풀이1 1. 문자열에 다국어가 포함되고 공백이 없을 경우 문제 해결 방식은 다음과 같다. 1) 문자열의 길이가 다른 경우 false를 반환한다. 2) 만약 문자열의 길이가 같다면 첫 문자열의 문자(Char)의 개수를 저장하기 위해 MutableMap 를 선..