Algorithm

    [Kotlin] Matrix 90도 회전시키기 : Matrix Rotation

    문제 NxN Matrix가 주어졌을 때 이를 90도 회전시키는 알고리즘을 작성해라. 각 픽셀은 4bytes로 이루어져 있다. 문제 풀기 전 확인 사항 - 시작점은 [0, 0]으로 둔다. -> [x, y] 위치는 [y, N-1-x]로 이동한다. 문제 풀이1 이런 문제는 먼저 쉬운 방식으로 풀어야 한다. 1. 같은 크기의 Matrix를 만들어낸다. 2. [x, y] 위치의 원소를 새로운 Matrix의 [y, N-1-x] 로 이동한다. class Solution() { fun rotate(matrix: Array): Array { val SIZE_N = matrix.size val newMatrix = Array(SIZE_N) { IntArray(SIZE_N) } matrix.forEachIndexed { r..

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

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

    [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..