GiantStepDEV
article thumbnail
자바(Java) [백준] 5622번 : 다이얼
🔄 Algorithm/BaekJoon 2023. 2. 13. 19:58

문제 상근이의 할머니는 아래 그림과 같이 오래된 다이얼 전화기를 사용한다. 전화를 걸고 싶은 번호가 있다면, 숫자를 하나를 누른 다음에 금속 핀이 있는 곳 까지 시계방향으로 돌려야 한다. 숫자를 하나 누르면 다이얼이 처음 위치로 돌아가고, 다음 숫자를 누르려면 다이얼을 처음 위치에서 다시 돌려야 한다. 숫자 1을 걸려면 총 2초가 필요하다. 1보다 큰 수를 거는데 걸리는 시간은 이보다 더 걸리며, 한 칸 옆에 있는 숫자를 걸기 위해선 1초씩 더 걸린다. 상근이의 할머니는 전화 번호를 각 숫자에 해당하는 문자로 외운다. 즉, 어떤 단어를 걸 때, 각 알파벳에 해당하는 숫자를 걸면 된다. 예를 들어, UNUCIC는 868242와 같다. 할머니가 외운 단어가 주어졌을 때, 이 전화를 걸기 위해서 필요한 최소 ..

article thumbnail
오라클(Oracle) - SELECT (DQL)
🗄️ Backend/Oracle 2023. 2. 13. 19:29

⚙️Oracle Database Express Edition (XE) Release 11.2.0.2.0 (11gR2) ⚙️Scott 계정에 탑재되어 있는 기본 테이블을 이용하여 실습(EMP, DEPT, BONUS, SALGRADE) ⚠️ CRUD(Create, Read, Update, Delete) 중 Read에 속하는 DQL(SELECT문) 💡 SELECT (DQL) SQL문 중 가장 많이 사용되며 테이블에 저장된 데이터를 조회하기 위한 명령어 SELECT문에는 반드시 FROM 키워드가 와야 함. SELECT * FROM 조회할테이블; SELECT 조회할 열, 조회할 열 ... FROM 조회할테이블; 🐸 사원 번호, 부서 번호만 나오도록 쿼리문 작성 SELECT EMPNO, DEPTNO FROM EMP..

[Effective JAVA] 빌더 패턴 - 생성자에 매개변수가 많을 경우 추천
📚 Study/Design Pattern 2023. 2. 12. 19:38

빌더 패턴(Builder pattern) 클라이언트는 필요한 객체를 직접 만드는 대신, 필수 매개변수만으로 생성자(혹은 정적 팩토리)를 호출해 빌더 객체를 얻는다. 빌더 객체가 제공하는 일종의 setter 메소드들로 원하는 매개변수를 설정한다. 매개변수가 없는 build 메소드를 호출해 우리에게 필요한 객체를 얻는다. 💡 빌더는 생성할 클래스 안에 정적 멤버 클래스로 만들어둔다. 💡 점층적 생성자 패턴보다 코드가 장황하기 때문에 매개변수가 4개 이상은 되어야 쓸만함. package 빌더패턴; public class NutritionFacts { // 필수 입력 private final int servingSize; // 1회 제공량 private final int servings; // 총 n회 제공량 ..

자바(Java) - 개인 미니 프로젝트 3 (포켓몬 게임) v2 - 멀티 스레드를 이용한 실시간 전투 구현
📂 My Project 2023. 2. 12. 09:38

안녕하세요~ 즐거운 주말입니다. 주말이긴 한데 일요일이네요 벌써 ㅜㅜ 주말은 너무 훅 가는 것 같아서 늘 아쉬워요. 오늘은 저번에 만들었던 포켓몬 게임(?)을 조금 수정하여 가져왔습니다. 멀티스레드를 이용하여 [피카츄 + 꼬부기 VS 팬텀] 을 만들었습니다. 진짜 완성도가 마음에 안들어서 올릴까 말까 고민했는데 그래도 이것 또한 하나의 과정이라고 생각해서 올려봅니당..🤣 abstract public class Unit { protected String name; protected int hp; protected int power; protected double pHit; protected int specialPower; protected boolean isDead; } public interface Ac..

자바(Java) - 입출력 스트림 실습 문제
🗄️ Backend/Java 2023. 2. 10. 18:35

문제 임의의 위치에 아래 내용이 담긴 텍스트 파일을 만들고, 해당 파일을 읽어 총점을 구하고 총점이 높은 사람 순으로 이름과 총점 출력하기 (단, 총점이 같은 경우에는 이름 순으로 정렬) .txt 안유진 99 78 45 이영지 34 56 100 이윤지 56 78 34 우영우 99 98 97 정명석 96 99 98 이준호 77 87 88 권민우 96 93 90 최수연 97 88 87 동그라미 45 34 67 미미 45 56 78 🐸 : 문제를 파악한 뒤에는 해당 처리 순서를 먼저 정해두는 것이 좋다. (1) 파일을 읽어온다. ❓Scanner (2) 정보를 단위별로 쪼갠다. ❓nextLine() : 줄바꿈 기준으로 나눔 , split() : 공백 기준으로 나누면 될 것 같음 (3) 그 정보를 객체에 담는다...

article thumbnail
자바(Java) - 입출력 스트림
🗄️ Backend/Java 2023. 2. 9. 13:26

입출력(I/O)? Input과 Output의 약자 컴퓨터 내부 또는 외부 장치와 프로그램 간의 데이터를 주고 받는 것 장치와 입출력을 위해서는 하드웨어 장치에 직접 접근이 필요한데 다양한 매체에 존재하는 데이터들을 사용하기 위해 입출력 데이터를 처리할 공통적인 방법으로 스트림을 이용함. 스트림 자바에서는 파일이나 콘솔의 입출력을 직접 다루지 않고, 스트림이라는 흐름을 통해 제어 실제의 입력이나 출력이 표현된 데이터의 이상화된 흐름 즉, 스트림은 운영체제에 의해 생성되는 가상의 연결 고리를 의미하며, 중간 매개자 역할을 함 스트림 특징 FIFO구조 🐶 먼저 들어간 데이터가 먼저 나오는 형태로 데이터의 순서가 바뀌지 않는다 단방향 🐶 하나의 스트림에서 입출력이 동시에 이루어 지지 않는다 입력과 출력에 각각 ..

article thumbnail
자바(Java) [백준] 2798번 : 블랙잭
🔄 Algorithm/BaekJoon 2023. 2. 8. 20:16

문제 카지노에서 제일 인기 있는 게임 블랙잭의 규칙은 상당히 쉽다. 카드의 합이 21을 넘지 않는 한도 내에서, 카드의 합을 최대한 크게 만드는 게임이다. 블랙잭은 카지노마다 다양한 규정이 있다. 한국 최고의 블랙잭 고수 김정인은 새로운 블랙잭 규칙을 만들어 상근, 창영이와 게임하려고 한다. 김정인 버전의 블랙잭에서 각 카드에는 양의 정수가 쓰여 있다. 그 다음, 딜러는 N장의 카드를 모두 숫자가 보이도록 바닥에 놓는다. 그런 후에 딜러는 숫자 M을 크게 외친다. 이제 플레이어는 제한된 시간 안에 N장의 카드 중에서 3장의 카드를 골라야 한다. 블랙잭 변형 게임이기 때문에, 플레이어가 고른 카드의 합은 M을 넘지 않으면서 M과 최대한 가깝게 만들어야 한다. N장의 카드에 써져 있는 숫자가 주어졌을 때, ..

자바(Java) - 스트림(Stream)
🗄️ Backend/Java 2023. 2. 8. 19:59

스트림(Stream)? 함수형 프로그램을 이용해 다양한 데이터 소스(배열, 프레임 워크 등)를 표준화된 방법으로 다루기 위한 것 Stream은 Collection 안에 있음. 스트림을 쓰는 이유? 코드가 간결해지고 일관성 유지가 가능해짐. ➡️ 맥도날드 강남 지점이든 부산 지점이든 햄버거 맛이 똑같은 것 처럼 누가 코드를 작성하든 동일한 형식이 나올 수 밖에 없기 때문에 코드의 신뢰도가 높아지고 버그가 생기지 않음. 스트림 특징 자료의 대상과 관계없이 동일한 연산 수행 외부 반복을 통해 작업하는 컬렉션과 달리 내부 반복을 통해 작업 수행 ( 반복문 배제 ) 스트림은 한번 생성 된 후 최종연산을 통해 소모되면 재사용 불가 (최종연산은 한 번만 가능!!) 원본 데이터를 변경하지 않음 지연 연산 지원 병렬 처..

자바(Java) - 람다(Lambda)
🗄️ Backend/Java 2023. 2. 8. 19:02

함수형 프로그래밍? 순수함수 동일한 입력에는 항상 같은 값을 반환해야 하는 함수 함수의 실행이 프로그램의 실행에 영향을 미치지 않아야 하는 함수 함수의 내부에서 인자값을 변경하거나 프로그램의 상태를 변경하는 Side Effect가 없는 것 비상태, 불변성 함수형 프로그래밍에서의 데이터는 변하지 않는 불변성을 유지해야 한다. 선언형 함수 if, for, switch와 같은 조건문/반복문 사용 금지 1급 객체와 고차 함수 객체를 매개변수로 전달할 수 있다. 람다(Lambda) 람다 표현식 작성 자바에서는 화살표(->)기호를 사용하여 람다 표현식을 작성할 수 있습니다. 매개변수의 타입을 추론할 수 있는 경우, 타입 생략 가능 매개변수가 하나인 경우 괄호() 생략 가능 함수의 몸체가 하나의 명령문만으로 이루어진..

article thumbnail
자바(Java) [백준] 2908번 : 상수
🔄 Algorithm/BaekJoon 2023. 2. 7. 19:59

문제 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 개를 칠판에 써주었다. 그 다음에 크기가 큰 수를 말해보라고 했다. 상수는 수를 다른 사람과 다르게 거꾸로 읽는다. 예를 들어, 734와 893을 칠판에 적었다면, 상수는 이 수를 437과 398로 읽는다. 따라서, 상수는 두 수중 큰 수인 437을 큰 수라고 말할 것이다. 두 수가 주어졌을 때, 상수의 대답을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 상근이가 칠판에 적은 두 수 A와 B가 주어진다. 두 수는 같지 않은 세 자리 수이며, 0이 포함되어 있지 않다. 출력 첫째 줄에 상수의 대답을 출력한다. i..