Dev-Kyuu
article thumbnail
Java | Extend와 Implements(인터페이스)
✏️ Java 2022. 11. 25. 17:14

오늘 주어진 주특기 입문 과제로 요구조건에 맞는 클래스를 설계하고, 제출하는 과제가 있는데 해당 부분에서 인터페이스를 이용해 '확장에 용이한 형태'로 변경을 하라고 하였다. 그래서 다시금 공부하게 된 인터페이스 📌 1. Java 에서의 인터페이스 사용 목적? 객체지향 5원칙(SOLID) - 인터페이스 분리 원칙 인터페이스 분리 원칙이란, 객체는 자신이 호출하지 않는 메서드에 의존하지 않아야 한다 라는 원칙이다. 부모 클래스에서 모든 교통수단에서 공통적으로 적용이 필요한 기능 + 모든 자식 클래스에서 필요한 기능을 다 생성하고 있을 떄 기능상으로는 문제가 없지만 모든 자식 클래스들은 이 부모 클래스를 상속했기 때문에 좋든 싫든 해당 메소드를 가지고 있어야한다. 하지만 상속 대상인 객체의 메소드를 각 동작별..

article thumbnail
| 혼공자 | Chapter 6 . 클래스 2️⃣
✏️ Java 2022. 11. 25. 01:46

Chapter 6-2 . 필드 && Chapter 6-3. 생성자 📌 1. 필드 필드는 객체 고유의 데이터, 객체가 가져가야 할 부품 & 현재 상태 데이터를 저장하는 곳이다. 클래스에 포함된 변수를 의미하며, 객체의 속성을 정의할 떄 사용한다. 필드는 초기값을 주더라도 자동으로 초기화되며, 객체 외부에서 접근 시 객체를 생성하고 참조 변수를 통해 사용해야한다. 🔔 ) 자바에서 변수는 클래스 변수, 인스턴스 변수, 지역 변수가 있는데 이 중 필드라 부르는건 클래스 변수와 인스턴스 변수이다. 클래스 변수와 인스턴스 변수 : - 이 둘은 static 키워드의 유무로 구분하는데 Static 키워드가 함께 선언되면 클래스 변수 / 그렇지 않은 것은 인스턴스 변수이다. class Card { String kind ..

article thumbnail
[항해99] 알고리즘 테스트 - 상하좌우 큰 수 찾기
📔 Algorithm 2022. 11. 24. 16:44

- 문제 : 5X5 2차원 배열이 주어질 때 원소n을 상/하/좌/우 원소와 비교하여 그 원소들보다 크면 해당 위치에 *을 표시하는 문제. i번째 배열의 상/하/좌/우 값을 비교하여 크면 * , 크지않으면 원래 자기의 값을 출력하면 된다. - 소스코드 : package examPrac; public class algorithmTest3 { public void solution(int[][] arr1) { String star = "*"; for (int i = 0; i < arr1.length; i++) { System.out.print("["); // 첫번째 행일 때 if (i == 0) { for (int j = 0; j < arr1[i].length; j++) { // 0번째 행 첫번째 자리 일 떄 ..

article thumbnail
[항해99] 알고리즘 테스트 - Triangular Output
📔 Algorithm 2022. 11. 24. 16:33

- 문제 : 예제와 같이 트리모양(=삼각형)으로 별(*)을 출력하는 문제 트리형으로 별을 찍으려면 첫번째줄에는 양쪽에 공백이 들어가야한다. 공백은 1-> 3 줄이 될수록 짝수로 (-2씩) 감소하고, 별은 1->3줄이 될 수록 홀수로 (+2)씩 증가한다. - 소스코드 : package examPrac; public class algorithmTest2 { public void solution(int star) { // 별 찍기 프로그램, 삼각형 모양으로 별을 출력한다. // 예제 1의 star = 3의 별 모양 삼각형을 보면 // 별은 1번째 줄 부터 3번째 줄까지 1->3->5 로 되며 마지막줄은 입력한 값 * 2 -1 (=5)이고, // 별은 2만큼 증가하는 홀수 형태이다. // 공백은 1번째 줄 부터..

article thumbnail
[항해99] 알고리즘 테스트 - 윷놀이
📔 Algorithm 2022. 11. 24. 16:22

- 문제 : 윷놀이의 결과를 구하는 문제! 배열로 등/배 정보가 주어지면 그 결과로 윷놀이의 결과를 출력하면 된다. - 소스코드 package examPrac; public class algorithmTest1 { public String solution(int[] arr1) { String answer =""; int dNum =0; // 등의 갯수를 기준으로 도/개/걸/윷/모 인지 판단하기 위한 변수를 선언한다. // 등이 0이면 윷, 1이면 걸 ... 4면 모 for( int i =0; i < arr1.length; i++){ // arr1의 길이만큼 반복하면서 if ( arr1[i] == 1){ dNum += 1; // arr[i]값이 1일 경우 등이므로, dNum에 1을 더한다. } } // i..

보호되어 있는 글입니다. 내용을 보시려면 비밀번호를 입력해주세요.
article thumbnail
[항해99] 알고리즘 모의고사 - 소수의 개수와 덧셈
📔 Algorithm 2022. 11. 23. 23:02

- 문제 : 문자열 S에 공백으로 구분된 숫자들이 저장되어있는데, 해당 숫자 중 소수의 최대값과 소수가 아닌 수의 최소값을 찾아 반환하는 문제 음수는 없다 - 소스코드 package examPrac; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class exam3 { public String solution(String s) { String[] sSplit = s.split(" "); // 문자열 S를 받아서 공백을 기준으로 잘라서 배열에 저장한다. // 소수와, 소수가 아닌 항목들을 담을 List를 생성한다. List sosu = new ArrayList(); List nososu = ne..

article thumbnail
[Programmers] Lv1. 신규 아이디 추천
📔 Algorithm 2022. 11. 23. 17:22

- 문제 : 아이디를 생성할 때 아이디 규칙에 맞지 않는 아이디를 입력하면 입력된 아이디와 유사하면서 규칙에 맞는 아이디를 추천해주는 프로그램 작성하기 package org.example; public class proPrac24 { public String solution(String new_id) { String answer = ""; System.out.println("1단계 시작"); String new_id_1 = new_id.toLowerCase(); // 1단계는 new_id의 모든 대문자를 대응되는 소문자로 치환한다. // toLowerCase 함수를 사용하여 아이디에 있는 모든 대문자를 소문자로 바꾼다 System.out.println("2단계 시작"); String new_id_2 = ..

article thumbnail
[Programmers] Lv1. 시저 암호
📔 Algorithm 2022. 11. 23. 14:06

- 문제 : 문자열 S와 거리n을 입력받아 n만큼 이동시킨 암호문을 만들기 package org.example; public class proPrac23 { public String solution(String s, int n) { String answer = ""; for(int i=0; i

article thumbnail
[Programmers] Lv1. 소수 만들기
📔 Algorithm 2022. 11. 23. 14:06

- 문제 : nums에 있는 숫자 중 서로 다른 3개를 골라 더했을 때 소수가 되는 경우의 수 구하기 package org.example; public class proPrac22 { public static void main(String[] args) { int nums[] = {1,2,7,6,4}; int answer = 0; for (int i = 0; i < nums.length; i++) { for (int j = i + 1; j < nums.length; j++) { for (int k = j + 1; k < nums.length; k++) { // 모든 경우의수를 구하기위해서 삼중 for문을 사용 int sum = nums[i] + nums[j] + nums[k]; // num i + num..

article thumbnail
| 혼공자 | Chapter 6 . 클래스
✏️ Java 2022. 11. 22. 23:20

TIL과 별도로 주특기는 스터디로 공부를 진행하기로 하였다. 공부한 내용은 매일매일 정리해서 작성하기 ✏️😎✏️ Chapter 6-1 . 객체지향 프로그래밍 📌 1. 객체 객체(object)는 물리적/추상적인 것 중에서 자신의 속성을 가지고 있으면서 식별이 가능한것을 얘기한다. 객체는 속성/동작으로 구성되어있고, 속성은 필드(F) 동작은 메소드(M)라고 부른다. 사람이라는 현실의 객체를 객체 모델링을 해보면 아래 그림과 같다. 사람은 객체로서 필드(속성)은 이름/나이/성별, 메소드(동작)은 걷다,먹다등으로 나뉘어진다. ✏️ 객체는 각각 독립적으로 존재하고, 다른 객체와의 상호작용을 한다. ㄴ 이때 객체가 다른 객체의 기능을 이용하는것을 메소드 호출이라고 함 #메소드 호출 moving = human.run..

article thumbnail
[항해99] 알고리즘 모의고사 - 몇시간 했더라?
📔 Algorithm 2022. 11. 22. 22:52

- 문제 : 항해 체크인/체크아웃 배열을 계산하여 이번주에 총 몇시간을 공부했는지 구하는 문제 새벽 5시 정각이거나, 이후 체크아웃을 하였을 때는 체크아웃을 까먹은것으로 간주하여 21시까지 한것으로 함 package examPrac; public class exam2 { public static class Main { public int solution(int[] arr1, int[] arr2) { int answer = 0; // 답을 리턴할 정수형 변수를 선언 (총 시간으 합을 반환할거기 때문에 정수형으로 선언함) int result = 0; // 총 시간 계산시 사용할 변수 선언 int timeOut = 21; // 29시(5시)가 넘어갈경우 21시까지 한것으로 간주하여 계산할것이기 때문에 숫자 2..

article thumbnail
[항해99] 알고리즘 모의고사 - 신대륙 발견
📔 Algorithm 2022. 11. 22. 22:48

- 문제 : 항해 1일차 날짜를 입력하면 98일 이후 항해를 수료하게 되는 날짜를 계산하는 알고리즘을 만들기 윤일은 고려하지않고(2월은 28일 까지), 1

[항해99] 1주차 - WIL
⛴ 항해 2022. 11. 22. 01:19

항해99 시작주차 1주차 항해일지 WIL 이번주는 폭풍이 지나간 한 주였다 한주의 시작과 함께 프로젝트를 시작했고 인생에서 처음으로 해보는것들을 하느라 일주일이 어떻게 갔는지도 모르겠다🫠 그렇게 바쁘게 보낸 덕분인지 ? 한주가 눈 깜짝할새에 지나가버렸다 이렇게 지내다보면 99일도 뚝딱일지도 ㅎ 📌 이번주 배운것 S.A 작성하는 법 미니 프로젝트 OTT Planet 진행/완료보고 프로젝트 코드 readme 작성 법 git/github 사용법 알고리즘 발돋움 📌 JWT란? Session과 Token의 차이점 (1) 세션과 토큰을 사용하는 이유 유저가 로그인을 시도할 때 서버상에서 일치하는 유저 정보를 찾았다면 인증 확인의 표시로 서버에서 클라이언트로 세션이나 토큰을 발급/전달함 그럼 웹 브라우저에서 받은 세..

article thumbnail
[Programmers] Lv1. 제일 작은 수 제거하기
📔 Algorithm 2022. 11. 22. 01:11

- 문제 : 배열에서 가장 작은수를 찾아서 가장 작은수를 제거한 배열을 리턴 만약 arr의 값이 [10]이면, -1을 반환 class Solution { public int[] solution(int[] arr) { if(arr.length == 1){//배열 길이가 1인(=10이 들어가있는경우) int[] answer = {-1}; // -1을 리턴 return answer; } int[] answer = new int[arr.length-1]; // 가장 작은수를 빼야하니까 가장 작은수를 뺀 길이로 생성한다 int min = arr[0]; // 기준값을 잡는다 for(int i=1; i

article thumbnail
[Programmers] Lv1. 자연수를 뒤집어서 배열로 만들기
📔 Algorithm 2022. 11. 22. 01:10

- 문제 : 임의의 정수 n에 대해, 양의 정수 x의 제곱인지 아닌지 판단하여 n이 x의 제곱이라면 x+1을 리턴하고, 아니라면 -1을 리턴한다. 제곱근이라는거부터 몰라서 찾아서 푸느라 조금 오래걸렸당 Double n_value = Math.sqrt(n); // Math.sqrt 함수는 n의 제곱근을 반환한다. if (n_value == n_value.intValue()) { return (long) Math.pow(n_value + 1, 2); // Math.pow는 n_value에 1을 더한값을 2번 곱할때 사용한다, } else { return -1; } - 풀이 : java의 Math함수를 이용하여 제곱근, 제곱한 값을 구할 수 있다.