본문 바로가기
코딩연습일기/코딩테스트연습

코딩테스트연습 #3

by 실버십 2023. 3. 1.

1. (문자 반복 출력하기) 문자열 my_string과 정수 n이 매개변수로 주어질 때, my_string에 들어있는 각 문자를 n만큼 반복한 문자열을 return

class Solution {
    public String solution(String my_string, int n) {
        String answer = "";
        for (int i = 0; i < my_string.length(); i++){  // char 배열 하나씩 증가
            for (int j = 0; j < n; j++)  // char하나를 n번 만큼
            {
                answer += my_string.charAt(i);
            }
        }
        return answer;
    }
}

String to Char

* 여기서 string변수 이름이란 것은 원래 선언된 변수 또는 배열을 의미한다. (위 예제에서는 my_string이 된다)

 

 1) 하나씩만 (배열로 안 만들어줌)

 char 변수이름 = string형변수이름.charAt(인덱스번호);

 : String으로 저장된 문자열을 한글자씩 내가 선택해서 char 타입으로 변환해준다. 

 

 2) 처음부터 배열로 나열

 char[] 변수이름 = string형변수이름.toCharArray();

 

Char to String

 1) 배열, 인덱스 하나도 가능

 String 변수이름 = String.valueOf(char형 변수이름);

 

 2) 배열 불가

 String 변수이름 = Character.toString(char형 변수이름) ;

 

 3) " " 이용 (이해 안감)

public class del {
    public static void main(String[] args) {
        char ch = 'A';
        String str = ch + "";

        System.out.println(str);
    }
}

 

 

2.(피자 나눠먹기(1)) 피자를 7조각으로 나눠준다. 나눠 먹을 사람의 수 n일 때, 모든 사람이 피자 한 조각 이상 먹기 위해 필요한 피자의 수는?

class Solution {
    public int solution(int n) {
        int answer = n / 7;
        if (n % 7 != 0) {
            answer = (n/7) + 1;
        } 
        return answer;
    }
}

다른 사람의 풀이 1) 수학적으로 완벽... 이렇게 간단한 것을... 

class Solution {
    public int solution(int n) {
        return (n + 6) / 7;
    }
}

다른 사람의 풀이 2) 삼항연산자 사용

class Solution {
    public int solution(int n) {
        int answer = (n%7==0) ? n/7 : n/7 + 1;
        return answer;
    }
}

 

3. (문자열 뒤집기) 문자열 my_string이 매개변수일 때, my_string을 거꾸로 뒤집은 문자열을 출력

너무 길고 헷갈리게 적혀있어서 별로다.. 

class Solution {
    public String solution(String my_string) {
        char[] my_character = my_string.toCharArray();
        char[] charArray = new char[my_character.length];
        for (int i = 0; i < charArray.length; i++) {
            charArray[i] = my_character[charArray.length - 1 -i];
        }
        String answer = new String(charArray);
        return answer;
    }
}

 매번 헷갈리는 것

 1) length : 배열의 길이

 2) length() : 문자열의 길이

 3) size() :  컬렉셕프레임워크 타입의 길이 

 

다른사람의 풀이 1) StringBuuilder 이용

class Solution {
    public String solution(String myString) {
        return new StringBuilder(myString).reverse().toString();
    }
}

근데 나는 아직 StringBuilder가 뭔지 모름.. 공부해야 해...  StringBuilder와 StringBuffer 

 

다른사람의 풀이 2) for문 이용하기

class Solution {
    public String solution(String my_string) {
        String answer = "";
        for(int i=my_string.length()-1; i>=0; i--){
            answer+=my_string.charAt(i);
        }
        return answer;
    }
}

'코딩연습일기 > 코딩테스트연습' 카테고리의 다른 글

코딩테스트연습 #4  (0) 2023.03.04
코딩테스트연습#2  (0) 2023.02.26
코딩테스트연습 #1  (0) 2023.02.25