20230803 TIL

조광희·2023년 8월 3일

중복된 문자열 제거
문자열 my_string이 매개변수로 주어집니다. my_string에서 중복된 문자를 제거하고 하나의 문자만 남긴 문자열을 return하도록 solution 함수를 완성해주세요.

class Solution {
    fun solution(my_string: String): String {
        var answer: String = ""
        var count:Int = 0
        var testString: String=my_string.substring(0,1)
        
        for(i in 0 until my_string.length){//입력값의 최대길이까지 for문진행
            for(f in 0 until testString.length){//입력값의 최대길이까지 for문진행
                if(my_string.substring(i,i+1) == testString.substring(f,f+1)){
                    count++//중복되는 상황이면 Count변수에 1 추가
                }
            }
            if(count <1){ 
                    testString += my_string.substring(i,i+1) //Count변수가 1이하면 문자 추가
            }
            count = 0// count 변수 초기화
            
        }
        answer = testString
        return answer
    }
}

대문자와 소문자
문자열 my_string이 매개변수로 주어질 때, 대문자는 소문자로 소문자는 대문자로 변환한 문자열을 return하도록 solution 함수를 완성해주세요.

class Solution {
    fun solution(my_string: String): String {
        var answer: String = ""
        var String1:String
        var char1:Char
        var char2:Char


         for(i in 0 until my_string.length){
             String1 =my_string.substring(i,i+1)
             char1=String1.first()

             if(char1.isUpperCase()){
                 char2 = char1.toLowerCase()
                 answer += char2

             }else {
                 char2 = char1.toUpperCase()
                 answer += char2
             }
         }

        return answer
    }
}

인덱스 바꾸기
문자열 my_string과 정수 num1, num2가 매개변수로 주어질 때, my_string에서 인덱스 num1과 인덱스 num2에 해당하는 문자를 바꾼 문자열을 return 하도록 solution 함수를 완성해보세요.

class Solution {
    fun solution(my_string: String, num1: Int, num2: Int): String {
        var answer: String = ""
        var list =my_string.toCharArray()
        var char1 = list[num1]

        list[num1] = list[num2]
        list[num2] = char1

        answer=list.joinToString("")
        
        return answer
    }
}

배열의 유사도
두 배열이 얼마나 유사한지 확인해보려고 합니다. 문자열 배열 s1과 s2가 주어질 때 같은 원소의 개수를 return하도록 solution 함수를 완성해주세요.

class Solution {
    fun solution(s1: Array<String>, s2: Array<String>): Int {
        var answer: Int = 0
        for(i in 0 until s1.size){ //s1 배열 길이까지 for문 실행
            for(f in 0 until s2.size){//s2 배열 길이까지 for문 실행
                if(s1[i] == s2[f]) answer++ //s1[i] 인덱스값과 s2[f]의 인덱스의 값이 같으면 answer에 1 추가
            }
        }
        return answer
    }
}

숫자 찾기
정수 num과 k가 매개변수로 주어질 때, num을 이루는 숫자 중에 k가 있으면 num의 그 숫자가 있는 자리 수를 return하고 없으면 -1을 return 하도록 solution 함수를 완성해보세요.

class Solution {
    fun solution(num: Int, k: Int): Int {
        var answer: Int = 0
        var changeStr:String = num.toString()
        var num1:Int

        var charList:CharArray = changeStr.toCharArray()
        for(i in 0 until charList.size){
            if(charList[i].toInt() - 48 == k){ // toInt에서 -48을 해준 이유는 Char값을 toInt로 불러오면 ASCII코드로 가져오기 때문에 ASCII속 0의 값인 48을 빼주어야 Int값이 나온다.
                answer = i+1 //1을 더하는 이유는 정답으로 내야하는 자리값은 인덱스 시작값인 0보다 1이 더 크기 때문
                break
            }else answer = -1
        }
        return answer
    
    }
}

문자열 정렬하기(2)
영어 대소문자로 이루어진 문자열 my_string이 매개변수로 주어질 때, my_string을 모두 소문자로 바꾸고 알파벳 순서대로 정렬한 문자열을 return 하도록 solution 함수를 완성해보세요.

class Solution {
    fun solution(my_string: String): String {
        var answer: String = ""
        var charArr = my_string.toCharArray()
        var temp:Char
        
        for(i in 0 until charArr.size){
            charArr[i] =charArr[i].toLowerCase()
        
        }
        for(i in 0 until charArr.size){
            for(f in 0 until charArr.size){
                if(charArr[i].toInt() <= charArr[f].toInt()){//charArr[i]값이 charArr[f]값보다 적을 때,(알파벳 순서 맞추기 위해 실행)
                    temp = charArr[i]
                    charArr[i] = charArr[f]
                    charArr[f] = temp
                }
            }
        }
        answer = String(charArr)
        return answer
    }
}

머쓱이보다 키 큰 사람
머쓱이는 학교에서 키 순으로 줄을 설 때 몇 번째로 서야 하는지 궁금해졌습니다. 머쓱이네 반 친구들의 키가 담긴 정수 배열 array와 머쓱이의 키 height가 매개변수로 주어질 때, 머쓱이보다 키 큰 사람 수를 return 하도록 solution 함수를 완성해보세요.

class Solution {
    fun solution(array: IntArray, height: Int): Int {
        var answer: Int = 0
        for(i in 0 until array.size){
            if(array[i] >height) answer++
        }
        return answer
    }
}

직사각형 넓이 구하기
2차원 좌표 평면에 변이 축과 평행한 직사각형이 있습니다. 직사각형 네 꼭짓점의 좌표 [[x1, y1], [x2, y2], [x3, y3], [x4, y4]]가 담겨있는 배열 dots가 매개변수로 주어질 때, 직사각형의 넓이를 return 하도록 solution 함수를 완성해보세요.

class Solution {
    fun solution(dots: Array<IntArray>): Int {
        var answer: Int = 0
        var num1:Int = dots[0][0]
        var num2:Int = dots[0][0]
        var num3:Int = dots[0][1]
        var num4:Int = dots[0][1]


        for(i in 0 until 3){
            if(dots[i][0] > num1) { //배열 i번째 인수의 0번째 값이 num1 보다 클 때,(최대값 계산) x축

            num1 = dots[i][0]// num1에 dot[i][0]값 입력 (최댓값 등록)
            }else if(dots[i][0]< num2){
                num2= dots[i][0]//num2에 최솟값 등록
            }
            if(dots[i][1] > num3) { //배열 i번째 인수의 1번째 값이 num1 보다 클 때,(최대값 계산) y축

            num3 = dots[i][1]// num3에 dot[i][1]값 입력 (최댓값 등록)
            }else if(dots[i][1]< num4){
                num4= dots[i][1]//num2에 최솟값 등록
            }


        }

        answer= (num1-num2)*(num3-num4) //x축의 최댓값에서 최솟값을 빼서 변의 길이 구하고 y값도 똑같이 하여 구한 후 곱셈 실행

        
        
        return answer
    }
}
profile
다시시작

1개의 댓글

comment-user-thumbnail
2023년 8월 3일

좋은 글 감사합니다.

답글 달기