10.Java-Programmers lv1

2 minute read

  • call-by reference. 메소드.int.값변화x
  • 생성자. 리턴없는메소드 . 필드값 초기화
  • interface .다중상속 .생성자x
  • 다형성 - 객체1개가 여러타입
  • abstract. 메소드,필드강제 - 생성자o
  • 오버로딩 - new 메소드 생성
  • 오버라이딩 - 상속 메소드 내용 변경
  • enum - 클래스같은 상수.
  • 람다 - first class citizen (전저리)
  • 스트림 - 배열(collection) 탐색도구
  • implement 인터페이스 , extend 상속

10 Java-programmers lv1



9. 정수 내림차순으로 배치


https://programmers.co.kr/learn/courses/30/lessons/12933?language=java




public int reverseInt(int n){

    String str = Integer.toString(n);
    char[] c = str.toCharArray();
    Arrays.sort(c); // 프로그래머스에 문제있음 // 오름차순정렬


    StringBuilder sb = new StringBuilder(new String(c,0,c.length));

    return Integer.parseInt((  (sb.reverse()).toString() ) ); // 내림차순정렬
}

// 아래는 테스트로 출력해 보기 위한 코드입니다.
public static void  main(String[] args){
    lv19 ri = new lv19();
    System.out.println(ri.reverseInt(118372));
}





10. 자연수 뒤집어 배열로 만들기


https://programmers.co.kr/learn/courses/30/lessons/12932?language=java




public class lv110 {

    public static int[] solution(long n) {
        String a = "" + n;
        int[] answer = new int[a.length()];
        int cnt = 0;

        while (n>0){
            answer[cnt] = (int)(n%10); // n%10을 int로 캐스팅
            n /= 10; // 기존값에 우측항을 나눔
            cnt++;
        }
        return answer;
    }
    public static void main(String[] args) {
        lv110 dd = new lv110();
        System.out.println(Arrays.toString(solution(12345)));
    }

}






11. 행렬의 덧셈


https://programmers.co.kr/learn/courses/30/lessons/12950



public class lv111 {
    public int[][] solution(int[][] arr1, int[][] arr2){

        int col = Math.max(arr1.length,arr2.length);
        int row = Math.max(arr1[0].length , arr2[0].length);
       
        int [][] answer = new int[col][row];

        for (int i = 0; i < answer.length ; i++){
            for(int j = 0; j < answer[i].length ; j++){
                answer[i][j] = arr1[i][j] + arr2[i][j];
            }
        }

        return answer;
    }

    public static void main(String[] args){
        lv111 dd = new lv111();
        int[][] arr1 = new int[][] { {1,2},{2,3}};
        int[][] arr2 = new int[][] { {3,4},{5,6}};
        int[][] result = dd.solution(arr1,arr2);
        if (result[0][0] == 4) {
            System.out.println("정답");
        }

    }
}





12. 소수 찾기


https://programmers.co.kr/learn/courses/30/lessons/12921



public class lv112 {

    public int solution(int n) {
        int answer = 0;
        for(int i = 2; i <= n; i++){
            int j = 2;
            int cnt = 0;

            while(j <= (int)Math.sqrt(i)){
                if(i % j == 0){
                    cnt += 1;
                    break;
                }
                j += 1;
            }
            if(cnt == 0) answer += 1;
        }
        return answer;
    }

    public static void main(String[] args) {
        lv112 prime = new lv112();
        System.out.println( prime.solution(10) );
    }


}




13. 시저 암호


https://programmers.co.kr/learn/courses/30/lessons/12926?language=java



public class lv113 {

       public String solution(String s, int n) {
            String answer = "";
            n = n % 26;


            for (int i = 0; i < s.length(); i++) {
                char ch = s.charAt(i);  // i번째 문자열을 ch 에 넣는다

                if (Character.isLowerCase(ch)) {
                    ch = (char) ((ch - 'a' + n) % 26 + 'a');
                } else if (Character.isUpperCase(ch)) {
                    ch = (char) ((ch - 'A' + n) % 26 + 'A');
                }
                answer += ch;
            }
            return answer;
        }

        public static void main(String[] args) {
            lv113 c = new lv113();
            System.out.println("s는 'a B z', n은 4인 경우: " + c.solution("c B z", 4));



            char a1 = 'a'; // 97 Dec
            char a2 = a1; // char 'a'
            int i = a2 + 1 ; // int 98 , a2 자동 변환
            char a3 = (char)(a1 + 2); // 99 를 char로 변환
            a2 ++;

            System.out.println(i + "\t" + a2+ "\t" + a3); // char 타입은 정수형이기 때문에 더하기 빼기 가능

            char a11 = 'a'; // char '' string ""
            // char a22 = a11 + 1; 변수 + 리터럴이기 때문에  컴파일 에러
            char a33 = 'a' + 1 ; // 문자리터럴 + 정수리터럴이기 때문에 가능
            


            System.out.println(a33);

       }
}






image


Leave a comment