푸드 파이트
·
(Java)코테연습
문제 설명수웅이는 매달 주어진 음식을 빨리 먹는 푸드 파이트 대회를 개최합니다. 이 대회에서 선수들은 1대 1로 대결하며, 매 대결마다 음식의 종류와 양이 바뀝니다. 대결은 준비된 음식들을 일렬로 배치한 뒤, 한 선수는 제일 왼쪽에 있는 음식부터 오른쪽으로, 다른 선수는 제일 오른쪽에 있는 음식부터 왼쪽으로 순서대로 먹는 방식으로 진행됩니다. 중앙에는 물을 배치하고, 물을 먼저 먹는 선수가 승리하게 됩니다.이때, 대회의 공정성을 위해 두 선수가 먹는 음식의 종류와 양이 같아야 하며, 음식을 먹는 순서도 같아야 합니다. 또한, 이번 대회부터는 칼로리가 낮은 음식을 먼저 먹을 수 있게 배치하여 선수들이 음식을 더 잘 먹을 수 있게 하려고 합니다. 이번 대회를 위해 수웅이는 음식을 주문했는데, 대회의 조건을 ..
StringBuffer, StringBuilder
·
Java 문법정리 (Array부터)
StringBuffer란?StringBuffer는 가변(mutable) 문자열 클래스문자열을 수정해도 새로운 객체를 생성하지 않고, 기존 객체를 변경StringBuffer는 내부적으로 문자열을 변경할 때 배열을 사용하므로 성능이 좋음StringBuffer는 동기화(synchronized)되어 있어, 멀티스레드 환경에서도 안전하게 사용가능문자열 연결String을 사용하여 문자열을 여러 번 연결할 때String str = "";for (int i = 0; i  위 코드에서 매번 문자열을 연결할 때마다 새로운 String  객체가 생성된다. 하지만 이는 비 효율적이기에 StringBuffer를 사용한다. StringBuffer를 사용하여 문자열을 연결할 때StringBuffer buffer = new Stri..
OUTER, 테이블 여러개를 JOIN해야되는 경우
·
SQL 정리
테이블 여러개를 JOIN해야되는 경우SELECT a.columnA, b.columnB, c.columnCFROM TableA aINNER JOIN TableB b ON a.key = b.foreignKeyAINNER JOIN TableC c ON b.key = c.foreignKeyB; LEFT JOIN을 사용한 예제 SELECT t1.id AS Table1_ID, t1.columnA AS Table1_ColumnA, t2.id AS Table2_ID, t2.columnB AS Table2_ColumnB, t3.id AS Table3_ID, t3.columnC AS Table3_ColumnCFROM Table1 t1LEFT ..
Collection: List
·
Java 문법정리 (Array부터)
Array처럼 크기를 고정하여 생성하는 것을 정적 배열.ArrayList처럼 크기가 가변적으로 늘어나는 것을 동적 배열이라고 합니다. ArrayList 특징  동적 크기 조정: ArrayList는 내부적으로 배열을 사용하지만, 크기가 동적으로 조정된다. 요소를 추가할 때 배열의 크기가 부족하면, 새로운 배열을 할당하고 기존 요소를 복사하여 저장한다.빠른 요소 접근: 인덱스를 사용하여 요소에 접근하는 연산은 O(1) 시간복잡도를 가진다. 이는 ArrayList의 큰 장점 중 하나이다.요소 추가와 제거: 배열의 크기를 동적으로 조정해야 하는 경우를 제외하면, 끝에 요소를 추가하는 연산은 평균적으로 O(1) 시간복잡도를 가진다. 그러나 중간에 요소를 삽입하거나 제거하는 연산은 O(n) 시간복잡도를 가진다.비동..
Collection
·
Java 문법정리 (Array부터)
Collection이란? Collection 프레임워크는 데이터를 구조화하여 저장하고 조작할 수 있는 다양한 자료 구조와 알고리즘을 제공하는 시스템이다.이 프레임워크는 java.util 패키지에 포함되어 있으며, 여러 인터페이스와 클래스로 구성되어 있다. 이를 통해 일관된 방식으로 데이터를 관리할 수 있다. Collection 인터페이스는 가장 기본이 되는 인터페이스로, List, Set, Queue 등의 상위 인터페이스이다. 이 인터페이스에는 데이터를 추가, 삭제, 검색, 반복하는 데 사용되는 기본적인 메서드들이 정의되어 있다.add(E e): 컬렉션에 요소를 추가한다.remove(Object o): 특정 요소를 컬렉션에서 제거한다.iterator(): 컬렉션의 요소를 반복하는 Iterator를 반환한..
자바 배열
·
Java 문법정리 (Array부터)
배열  선언 ([])여러 개를 하나의 변수에 넣어놓고 들고 다니거나 하나씩 꺼내서 쓸 수 있다는 점에서 분류통의 개념과 비슷합니다.단, 하나의 배열형 변수에는 같은 타입의 변수만 담을 수 있습니다.한 번에 많은 양의 데이터를 다루거나 계산할 때 사용합니다.배열은 영어로 Array라고 부릅니다.선언 방법은 아래 2가지 방법이 있습니다.타입 [] 변수;ex. int[] intArray; 타입 변수[];ex. int intArray[];  int 와 같은 기본형 변수는 1개의 값만 변수에 저장할 수 있다면 int[] 와 같은 배열형 변수는 여러 개를 변수에 저장할 수 있습니다. // 배열 선언// 일반적인 선언방식int[] intArray; // 정수 배열long[] longArray;double[] d..
가장 가까운 같은 글자
·
(Java)코테연습
문제 설명문자열 s가 주어졌을 때, s의 각 위치마다 자신보다 앞에 나왔으면서, 자신과 가장 가까운 곳에 있는 같은 글자가 어디 있는지 알고 싶습니다.예를 들어, s="banana"라고 할 때,  각 글자들을 왼쪽부터 오른쪽으로 읽어 나가면서 다음과 같이 진행할 수 있습니다.b는 처음 나왔기 때문에 자신의 앞에 같은 글자가 없습니다. 이는 -1로 표현합니다.a는 처음 나왔기 때문에 자신의 앞에 같은 글자가 없습니다. 이는 -1로 표현합니다.n은 처음 나왔기 때문에 자신의 앞에 같은 글자가 없습니다. 이는 -1로 표현합니다.a는 자신보다 두 칸 앞에 a가 있습니다. 이는 2로 표현합니다.n도 자신보다 두 칸 앞에 n이 있습니다. 이는 2로 표현합니다.a는 자신보다 두 칸, 네 칸 앞에 a가 있습니다. 이 ..
CONCAT과 SUBSTRING 응용
·
SQL 정리
해당 문제에는 USER_ID, NICKNAME, 전체주소, 전화번호를 테이블에서 추출하는 문제이다.그중에서  USER_GOODS_USER 테이블을 통해 CITY, STREET_ADDRESS1, STREET_ADDRESS2를 한 컬럼에 합치기 위해 CONCAT함수를 이용하여 컬럼을 합친 변수명을 전체주소로 표기한다. 그러나 전화번호는 TLNO에서만 추출하지만 추출한 3개의 배열을 하나로 합쳐야 하기에 CONCAT과 SUBSTRING을 함께 사용해야 한다.EX)01012345678 SUBSTRING(U.TLNO, 1, 3): 첫 세 자리를 추출하여 "010"을 반환한다.SUBSTRING(U.TLNO, 4, 4): 네 번째 문자부터 네 자리를 추출하여 "1234"를 반환한다.SUBSTRING(U.TLNO, 8..
Overloading과 Overriding
·
Java 문법정리 (Array부터)
Overloading 오버로딩(Overloading)은 객체 지향 프로그래밍에서 같은 이름을 가진 여러 메서드를 정의할 수 있게 하는 기능입니다. 오버로딩을 사용하면 동일한 이름의 메서드가 다양한 인자 목록을 처리할 수 있게 됩니다. 이는 코드의 가독성과 유지보수성을 높이고, 유사한 작업을 하는 메서드를 그룹화하는 데 유용합니다.메서드 이름이 동일함: 오버로딩된 메서드들은 동일한 이름을 가지고 있습니다.매개변수 목록이 다름: 매개변수의 타입, 개수, 순서 중 하나 이상이 달라야 합니다.반환 타입은 상관없음: 반환 타입은 오버로딩의 기준이 되지 않으며, 동일할 수도 있고 다를 수도 있습니다.정적 다형성(Static Polymorphism): 오버로딩은 컴파일 시간에 결정되므로 정적 다형성이라고 불립니다.오..
미니 프로젝트 회고록(KPT)
·
미니 프로젝트/자기소개 웹페이지
프로젝트 기간 :24.7.15~24.7.19 KPT 정리Keep끊임 없는 질문함께 같은 목표/디자인으로 통일 되었는지 꾸준히 질문/소통배려하는 협업 자세몰라도 일단 해보는 자세프로젝트의 집중력Problem명확하지 못한 역할 분담 할당github 사용 미숙디자인 선정특정 팀원의 수준미달기능을 조금 더 디벨롭 할수 있었지만, 시간이 애매해서 계획수립된후 계획을 변경하지 않음 /추가하지 않음.Try다음 프로젝트에서는 각자 브랜치를 파 봅니다.디자인적 부분하루 일과 종료 1시간 전(?) 스터디모임🎖️ 잘한 점끊임 없는 질문과 소통팀원들이 프로젝트 진행 중 같은 목표와 디자인으로 통일 되었는지 꾸준히 질문하고 소통한 점은 매우 긍정적이었다. 이로 인해 프로젝트가 일관성을 유지하며 진행될 수 있었다.배려하는 협업..