[Programmers/코딩테스트 연습] 직각삼각형, 짝수 홀수, 문자 반복 Java (split, String복사, reverse, charAt)

2022. 11. 29. 08:28IT/Programmers

728x90
반응형

*로 직각삼각형 출력하기 (Java)

import java.util.Scanner;

public class Solution {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        
        for (int i = 1; i <= n ; i++) {
            for (int j = 1; j <= i; j++) {
                System.out.print("*"); //여기서 *j 이런 식으로 도전했다가 실패.
            }
            System.out.println();
        }
    }
}

라고 했는데, 

import java.util.Scanner;

public class Solution {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();

        for(int i=1; i<=n; i++){
            System.out.println("*".repeat(i)); //String.repeat() 함수가 있다. 
           !
        }
    }
}

저게 하고싶었다.

#string반복함수 #string.repeat함수 #reapeat()

 

짝수홀수 개수 (Java)

class Solution {
    public int[] solution(int[] num_list) {
        int[] answer = new int[2];
        int even = 0;
        int odd = 0;
        
        for(int i = 0; i < num_list.length;i++) {
            
            /* 이걸 줄이면
            if(num_list[i]%2 == 0) num_list[0]++;
            else num_list[1]++;
            */
            
            answer[num_list[i]%2]++;
        }
        return answer;
    }
}

 

문자 반복 출력 (Java)

나의 멍청한 코드와는 달리 좋은 코드들이 많았다.

class Solution {
    public String solution(String my_string, int n) {
        String answer = "";
        
        for(int i = 0; i < my_string.length(); i++) {
            for (int j = 0; j < n; j++) {
                answer += my_string.charAt(i);
            }
        }
        return answer;
    }
}

charAt에는 repeat을 못쓰기 때문에 강제로 루프를 두 번 돌렸는데 너무 지저분해 보인다.

 

class Solution {
    public String solution(String my_string, int n) {
        String answer = "";
        
        //String을 String 배열로 복사한다.
        //이 때 split은 문자 단위로 자르는 함수. (이걸 사용하고 싶었음)
        String[] str = my_string.split("");
        for(int i=0; i<my_string.length(); i++){
            
            //문자 배열에는 repeat 함수 사용 가능!
            answer += str[i].repeat(n);
        }
        return answer;
    }
}

String과 String 배열이 서로 다르다.

#reapeat() 은 #String[] 에서만 사용 가능하다.

String을 String[]로 #String복사 할 때에는 #split("") 을 이용해서 한 글자씩 넣을 수 있다.

728x90
반응형