Java
나누어 떨어지는 숫자 배열/java/프로그래머스/Level1
https://programmers.co.kr/learn/courses/30/lessons/12910 코딩테스트 연습 - 나누어 떨어지는 숫자 배열 | 프로그래머스 array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요. 제한사항 arr은 자연수를 담은 배열입니다. 정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 입니다. divisor는 자연수입니다. array는 길이 1 이상인 배열입니다. 입출력 예 arr divi programmers.co.kr ○ 처음 푼 풀이 (2020.02.23) 1 2 3 4 ..
문자열 내림차순으로 배치하기/java/프로그래머스/Level1
https://programmers.co.kr/learn/courses/30/lessons/12917 코딩테스트 연습 - 문자열 내림차순으로 배치하기 | 프로그래머스 문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요. s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다. 제한 사항 str은 길이 1 이상인 문자열입니다. 입출력 예 s return Zbcdefg gfedcbZ programmers.co.kr ○ 처음 푼 풀이 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 ..
정보은닉/접근제어자/getter/setter/java
○ 정보은닉 - 정보은닉 : private 접근제어자는 클래스 내부에서만 접근가능하므로 외부에서는 getter setter를 통해 접근 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 import java.util.Scanner; class Circle { private int r; // getter / setter 구성 int getR() { return r; } void setR(int r) { this.r = r; } void write(double a) { System.out.println("반지름 : " + r); System.out.println("넓..
배열의 복사/데이터 복사/깊은 복사/java
○ 배열의 복사 - 데이터 복사(깊은 복사) : 실제 요소로 들어있는 값에 대한 복사로 원본을 수정해도 복사본에 영향을 미치지 않는다. public class ArrCopy { public static void main(String[] args) { int[] nums = {10, 20, 30, 40, 50}; //-- 배열 원본 int[] copys2 = copyArray(nums); //-- 깊은 의미의 배열 복사 수행 // (사용자 정의 메소드 호출) int[] copys3 = (int[])nums.clone(); //-- 깊은 의미의 배열 복사 수행 // (자바 제공 → clone() 메소드) // 배열을 반환하는게 아니라 객체를 반환한다. // 원본 배열 요소의 수정 발생~!!! nums[1] ..
배열의 복사/주소값 복사/얕은 복사/java
○ 배열의 복사 - 주소값 복사 (얕은 복사) : 원본을 수정하면 복사본에 영향을 미친다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 public class ArrCopy { public static void main(String[] args) { int[] nums = {10, 20, 30, 40, 50}; //-- 배열 원본 int[] copys; //-- 복사본으로 만들 배열 int temp; //-- 실습 진행(테스트)을 위한 임시 변수 copys = nums; //-- 복사~!!! temp = nums[0]; //-- temp ← 10 nums[0] = 1000; //-- 1000 20 30 40 50 //co..
Random 클래스 활용
○ Random 클래스 활용 - 입력받은 수만큼 난수를 발생시켜 배열에 담고, 그 중 가장 큰 값과 가장 작은 값 구하기 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 import java. util.Scanner; import java.util.Random; public class RandomSu{ public static void main(String[] args) { // Scanner 인스턴스 생성 Scanner sc = new Scanner(System.in); System.out.print("발생시킬 난수의 개수 입력 : "); int size..
K번째수/java/프로그래머스/Level1
https://programmers.co.kr/learn/courses/30/lessons/42748 코딩테스트 연습 - K번째수 | 프로그래머스 [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] programmers.co.kr ○ 못 풀어서 다른사람 풀이 참고(sort(), copyOfRange() 사용) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 import java.util.Arrays; class Solution { public int[] solution(int[] array, int[][] commands) { int[] answer = new int[commands.length]; for(int i=0; i
시저 암호/java/프로그래머스/Level1
https://programmers.co.kr/learn/courses/30/lessons/12926 코딩테스트 연습 - 시저 암호 | 프로그래머스 어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 AB는 1만큼 밀면 BC가 되고, 3만큼 밀면 DE가 됩니다. z는 1만큼 밀면 a가 됩니다. 문자열 s와 거리 n을 입력받아 s를 n만큼 민 암호문을 만드는 함수, solution을 완성해 보세요. 제한 조건 공백은 아무리 밀어도 공백입니다. s는 알파벳 소문자, 대문자, 공백으로만 이루어져 있습니다. s의 길이는 8000이하입니다. programmers.co.kr ○ 처음 시도한 풀이 1 2 3 4 5 6 7 8 9 10 11 12 13..
약수의 합/java/프로그래머스/Level1
https://programmers.co.kr/learn/courses/30/lessons/12928 코딩테스트 연습 - 약수의 합 | 프로그래머스 정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요. 제한 사항 n은 0 이상 3000이하인 정수입니다. 입출력 예 n return 12 28 5 6 입출력 예 설명 입출력 예 #1 12의 약수는 1, 2, 3, 4, 6, 12입니다. 이를 모두 더하면 28입니다. 입출력 예 #2 5의 약수는 1, 5입니다. 이를 모두 더하면 6입니다. programmers.co.kr ○ 풀이 1 2 3 4 5 6 7 8 9 10 11 12 class Solution { public int solution(int n) { int a..
2016년/java/프로그래머스/Level1
https://programmers.co.kr/learn/courses/30/lessons/12901 코딩테스트 연습 - 2016년 | 프로그래머스 2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까지 각각 SUN,MON,TUE,WED,THU,FRI,SAT 입니다. 예를 들어 a=5, b=24라면 5월 24일은 화요일이므로 문자열 TUE를 반환하세요. 제한 조건 2016년은 윤년입니다. 2016년 a월 b일은 실제로 있는 날입니다. programmers.co.kr ○ 첫 풀이 (2020.02.15) 1 2 3 4 5 6 7 8 9 10..