문제https://school.programmers.co.kr/learn/courses/30/lessons/273710소요 시간 : 5분난이도 : LV 2 나의 풀이접근 방법1. ROOT 아이템은 PARENT_ITEM_ID가 NULL인 항목이므로 IS NULL을 활용해 ROOT_ITEM을 선택한다.2. ITEM_NAME을 알기 위해 ITEM_INFO 테이블과 조인한다. 코드 결과 : 정답SELECT T.ITEM_ID, ITEM_NAME FROM ITEM_TREE T JOIN ITEM_INFO I ON T.ITEM_ID = I.ITEM_ID WHERE PARENT_ITEM_ID IS NULL다른 사람의 풀이 코드SELECT ITEM_ID, ITEM_NAMEFROM ITEM_INFO JOIN ITEM_TRE..
전체 글
1. Docker Compose 로 Redis 실행하기1-1. 환경 구성하기docker-compose.ymlversion: "3.9"services: redis: image: redis:latest container_name: ${REDIS_NAME} ports: - ${REDIS_PORT}:6379 healthcheck: test: [ "CMD", "redis-cli", "ping" ] interval: 5s retries: 10 volumes: - redis-vl:/var/lib/redisvolumes: redis-vl: driver: local ${변수} 부분은 환경 변수입니다.노출되면 안 되는 중요 정보들 또는 자주 ..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/284527 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr소요 시간 : 10분난이도 : LV 2나의 풀이접근 방법1. GROUP BY를 이용해 사원별 상반기, 하반기 점수 합을 구한다.2. 점수별로 내림차순 정렬 후 LIMIT 1로 제일 높은 사원을 뽑는다.3. 1~2에서 구한 테이블을 서브쿼리로 사원 정보 테이블과 조인해서 사원의 추가 정보를 구한다.코드-- 코드를 작성해주세요SELECT G.SCORE, G.EMP_NO, E.EMP_NAME, E.POSITION, E.EMAILFROM (SEL..
전체 개념 정리 (X) 샘플 문제 풀고 헷갈리는 개념 정리 (O)제 1장 테스팅의 기초 1.1. 테스팅이란 무엇인가?- 검증, 베리피케이션(verification) : 개발자의 시각에서 제품의 생산 과정 테스트 ex. 단위, 통합, 시스템 테스트 - 확인, 벨리데이션(validation) : 사용자의 시각에서 생산된 제품의 결과 테스트 ex. 인수 테스트1.1.2. 테스팅과 디버깅- 디버깅 : 결함 찾고 원인 찾고 분석, 테스터는 디버깅 X- 테스팅 : 결함 식별 1.2.2. 테스팅과 품질 보증(QA)- 품질 제어 : 적합한 수준의 품질 달성을 지원하는 활동에 초점을 맞춘 제품 중심의 교정 접근법, 결함을 수정하는데 사용 - 테스팅은 품질제어(QC)다.- 품질 보증 : 프로세스 구현과 개선에 초점을 맞춘..
문제https://softeer.ai/practice/7727 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai소요 시간 : 1시간난이도 : LV 3나의 풀이 접근 방법DFS + 백트래킹을 이용한다.1. 친구들 순서대로 반복1-1. 3초동안 이동하며 열매를 수확한다. 이때 DFS를 돌려서 갈 수 있는 모든 경우의 수를 탐색한다. 1-2. 3초가 되었으면 다음 친구의 수확을 반복한다. 2. 모든 친구들이 수확을 완료했다면 답을 갱신한다. 시간복잡도m명의 친구가 있고 (m) -> 각 친구마다 3초동안 이동해야 하고 -> 각 위치에서 4방향 선택 가능 (상하좌우)따라서 각 친구마다 4³회의 탐색 가능하다. (최악의 경우)전체 시간복잡도: O(m * 4³) (m은 친구 수, 1 ≤ m ≤ 3..
Scanner와 BufferedReader의 차이Scanner은 입력 문자를 공백 혹은 개행문자(enter)로 구분한다. BufferedReader은 개행문자(enter)로만 구분 후 버퍼 공간에 저장해 두었다가 한번에 내보내서 빠르다. 대신 한번에 입력받은 값을 나눠줘야해서 코드가 길어진다는 단점이 있다.importimport java.io.BufferedReader선언BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 입력String s = br.readLine();int i = Integer.parseInt(br.readLine()); 입력은 readLine();이라는 메소드를 사용한다. String으로 리턴 값이 고정..
문제 소요 시간 : 30분난이도 : LV 2나의 풀이1차접근 방법1. 무게당 가격이 높은 순서대로 정렬한다.2. 가방 무게에서 가격이 높은 순서대로 차례차례 그리디하게 금속을 가져간다. 시간복잡도O(N)코드import java.io.*;import java.util.*;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int w = sc.nextInt(); int n = sc.nextInt(); int [][] list = new int[n][2]; for(int i=0; i o2[1]-o1[1]); ..
java에서는 Scanner 클래스를 사용하여 값을 입력받을 수 있다.이를 통해서 정수, 실수, 단어, 줄단위를 쉽게 읽어올 수 있다.공식 문서https://docs.oracle.com/javase/8/docs/api/java/util/Scanner.html Scanner (Java Platform SE 8 )Scans the next token of the input as a float. This method will throw InputMismatchException if the next token cannot be translated into a valid float value as described below. If the translation is successful, the scanner ad..
특징자바의 Stack 클래스는 Vector 클래스를 상속(extends)받기에 Thread-Safe 하다.사용법importimport java.util.Stack; 선언스택의 선언은 Stack 스택 이름 = new Stack(); 형태로 선언할 수 있으며,데이터 타입은 클래스 또는 래퍼(Wrapper) 클래스로 선언할 수 있다.import java.util.Stack;class StackEx { public static void main(String[] args) { // Integer형 스택 선언 Stack stackInt = new Stack(); // String형 스택 선언 Stack stackStr = new Stack(); /..
2024.10.28 이후 업데이트 중인 게시물 입니다 :) 선언 및 초기화자바(Java)의 배열은 선언할때 미리 공간의 갯수(길이)를 지정해야 한다.배열의 길이는 고정되어 있게 프로그래밍 상에서 설계 되었기 때문에, 만일 배열의 길이를 처음부터 지정하지 않으면 컴파일 오류가 발생하게 된다.배열의 타입(ex. int, string, ..)도 지정해 주어 배열에 저장할 데이터의 자료형을 명시해 주어야 한다.이렇게 생성한 배열은 인덱스(index) 번호를 통해 배열을 접근 할 수 있다.// int 형 배열 선언 & 초기화int[] score = new int[5]; // int 타입의 값 5개가 저장될 빈 공간 생성score[0] = 10; // 각 빈공간에 값을 초기화score[1] = 20;score[2]..