멍발자의 개발

0427 연습 문제 본문

코딩테스트/알고리즘 문제

0427 연습 문제

개발하는 멍발자 2022. 4. 27. 11:15

1. 홀수번째 문자를 다음 짝수번째 문자로 바꾸어 출력하십시오. 계속되는 문자가 없는 경우는 그 대로 출력합니다. 예를 들어, "abcde"에 대해 "badce"라고 출력합니다.

 

public class Exam1101 {
    public static void main(String[] args) {
        var data = "abcde";
        var builder = new StringBuilder();
        char t = 0;

        for(int i=0; i<data.length(); i++) {
            if(i % 2 == 0) {
                t = data.charAt(i);
            } else {
                builder.append(data.charAt(i));
                builder.append(t);
            }

        }
        if(builder.length() < data.length()) {
            builder.append(t);
        }
        var result = builder.toString();
        System.out.println(builder.toString());
    }
}
//결과
badce

2. 하나 뒤의 요소에 비해 큰 편을 포함한 배열을 만들어 봅시다. 마지막 요소는 마지막으로 그대 로 출력합니다. 예를 들어 {3, 6, 9, 4, 2, 1, 5}에 대해 {6, 9, 9, 4, 2, 5, 5}}가 생성됩니다.

 

public class Exam1102 {
    public static void main(String[] args) {
        int[] n = {3, 6, 9, 4, 2, 1, 5};

        for(int i=0; i<n.length-1; i++) {
            if(n[i] < n[i+1]) {
                n[i] = n[i+1];
            }
        }
        System.out.println(Arrays.toString(n));
    }
}

//결과
[6, 9, 9, 4, 2, 5, 5]

 

1. 받은 문자열의 알파벳을 처음은 소문자로 출력해, 0을 받으면 다음로부터 알파벳은 대문자에, 1 을 받으면 다음으로부터의 알파벳을 소문자로 출력해 봅시다. 예제: aa0bcd1efg1gg0abc -> aaBCDefgggABC

 

public class Exam1103 {
    /**
     * 받은 문자열의 알파벳을 처음은 소문자로 출력하고
     * 0을 받으면 다음로부터 알파벳은 대문자
     * 1을 받으면 다음으로부터의 알파벳을 소문자로 출력
     */
    public static void main(String[] args) {
        var data = "aa0bcd1efg1gg0abc";
        boolean isCheck = true;

        for(char ch : data.toCharArray()) {
            if(ch == '0') {
                isCheck = false;
            }else if(ch == '1') {
                isCheck = true;
            }else{
                System.out.print(isCheck? ch : (char)(ch - 32));
            }
        }
    }
}
//결과
aaBCDefgggABC

2. 문자열을 받고 숫자 이외는 그대로 출력하고, 숫자가 오면 직전의 문자를 그 숫자에 1을 더한 문자수만큼 출력하세요. 예제: ab0c1ba2bc9cd1 -> abbcccbaaaabccccccccccccddd

 

public class Exam1104 {
    /** 문자열을 받고 숫자 이외는 그대로 출력
     *숫자가 오면 직전의 문자를 그 숫자에 1을 더한 문자수만큼 출력
     */
    public static void main(String[] args) {
        var data = "ab0c1ba2bc9cd1";
        char t = 0;

        for(char ch : data.toCharArray()) {
            if (ch > 90) {
                System.out.print(ch);
            } else {
                System.out.print(String.valueOf(t).repeat(ch - 47));

            }
            t = ch;
        }
     }
}

//결과
abbcccbaaaabccccccccccccddd

 

 

Comments