분류 전체보기
-
[JAVA] Scanner 와 BufferedReader프로그래밍 언어/JAVA 2023. 1. 26. 11:07
사용자(키보드)에 입력을 받기 위해 Scanner 클래스를 사용한다. 하지만 알고리즘을 풀다보면 시간 초과가 발생하는 경험을 하게 된다. 나는 아직 해보기 전인데, 간단한 문제 풀고 다른 사람의 답변을 보니 Scanner 보다 BufferedReader를 더 많이 사용하더라. 그래서 정리해볼까 한다. 일단) Scanner와 BufferedReader 클래스는 둘 다 사용자 입력을 받을 수 있는 기능을 제공한다. 두 클래스가 가지고 있는 가장 큰 차이점은 속도이다. import java.util.Scanner; public class Input { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String inpu..
-
[알고리즘 코딩테스트] 시간 복잡도 표기법 알아보기코딩테스트/알고리즘 2023. 1. 25. 21:01
📑 시간 복잡도 정의하기 시간 복잡도는 주어진 문제를 해결하기 위한 연산 횟를 말한다. 일반적으로 수행 시간은 1억 번의 연산을 1초의 시간으로 간주하여 예측한다. 실제 시간 복잡도를 정의하는 유형은 다음과 같다. 📌 빅-오메가(Ω(n)) : 최선일 때(best case)의 연산 횟수를 나타낸 표기법 📌 빅-세타(θ(n)) : qhxhddlf EO(average case)의 연산 횧수를 나타내는 표기법 📌 빅-오(O(n)) : 최악일 때(worst case)의 연산 횟수를 나타낸 표기법 우리는 알고리즘을 풀때 항상 최악일 떄, 즉 데이터의 크기가 가장 클 때를 기준으로 하기 때문에 빅-오 복잡도를 사용해야 한다. 빅오 복잡도는 다음과 같다. 📑 시간 복잡도를 바탕으로 코드 개선하기 시간 복잡도는 작성한 ..
-
[MSA] MSA란? 개념과 특징IT/CS지식 2023. 1. 25. 10:41
📑 MSA란? MicroService Architecture의 줄임말이다. 마이크로서비스는 애플리케이션을 느슨하게 결합된 서비스의 모임으로 구조화하는 서비스지향 아키텍쳐(SOA) 스타일의 일종인 소프트웨어 개발 기법이다. 더보기 서비스 지향 아키텍처(Service Oriented Architecture(SOA)) 란? - 애플리케이션 구성요소가 통신 프로토콜을 통해 다른 구성요소에 서비스를 제공하는 아키텍처 접근 방식 - 대규모 컴퓨터 시스템을 구축할 때의 개념으로 업무상에 일 처리에 해당하는 소프트웨어 기능을 서비스로 판단하여 그 서비스를 네티워크 상에 연동하여 시스템 전체를 구축해 나가는 방법론 - 여기서 서비스는 기능의 독립적 단위이다. 📑 MSA 등장 배경 Monolithic Architectur..
-
[OARCLE] PL/SQL이란? 특징과 필요성DB/ORACLE 2023. 1. 25. 09:54
SQL은 절차형 언어가 아니다. SQL은 DDL/DML/DCL을 통해 데이터베이스를 정의 조작 제어하는 것이 가능하지만 SQL은 결국 데이터의 처리 집합만을 기술할뿐 어떤 절차를 걸쳐 데이터 집합을 얻어야하는지에 대한 절차적 과정을 제공하지 않는다. 일반적인 SQL 로직을 작성하면 이 문장의 실행순서는 옵티마이저에 의해 이루어지는데, 이는 여러가지 데이터베이스 통계를 기초로 실행 계획을 처리하기 때문에 데이터를 일반적으로 빠르게 다루어 주지만 결국 개발자 입장에서는 융통성 있는 데이터 처리가 불가능하다. 더보기 참고) 옵티마이저란? SQL을 가장 빠르고 효율적으로 수행할 최적의 처리경로를 생성해 주는 DBMS 내부의 핵심 엔진이다. 사용자가 구조화된 질의어로 결과 집합을 요구하면, 이를 생성하는데 필요한..
-
[SQL/프로그래머스] 조건에 맞는 회원수 구하기, 특정 날짜 조건 주기코딩테스트/프로그래머스 2023. 1. 20. 10:53
조건에 맞는 회원수를 구하는 문제이다. 문제에서 2021에 가입한 회원을 조회해야 되는데 오라클 데이터 조건 주는 게 생각나지 않는 거 아닌가!? 정리해보려고 한다. https://school.programmers.co.kr/learn/courses/30/lessons/131535 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📑 Date 자료형 데이터 -> 문자열로 변경 후 조회 select * from table where to_char(date,'yyyy') > '2021' 📑 문자열 -> Date 형으로 변경 후 조회 select * from ta..
-
[SQL/프로그래머스] 경기도에 위치한 식품창고 목록 출력하기, CASE코딩테스트/프로그래머스 2023. 1. 17. 16:07
프로그래머스 SQL 1단계 경기도에 위치한 식품창고 목록 출력하기 오라클, 이번 문제에서는 CASE문에 대해 정리하는 시간을 가졌다. https://school.programmers.co.kr/learn/courses/30/lessons/131114 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📑 CASE문 사용 방법 문) FOOD_WAREHOUSE 테이블에서 경기도에 위치한 창고의 ID, 이름, 주소, 냉동시설 여부를 조회하는 SQL문을 작성해주세요. 이때 냉동시설 여부가 NULL인 경우, 'N'으로 출력시켜 주시고 결과는 창고 ID를 기준으로 오름차..
-
[프로그래머스/sql] 재구매가 일어난 상품과 회원 리스트 구하기코딩테스트/프로그래머스 2023. 1. 16. 16:45
프로그래머스 sql 문제 groyp by와 having 사용하기 https://school.programmers.co.kr/learn/courses/30/lessons/131536 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 동일한 회원이 동일한 상품을 재구매한 데이터를 구하여, 재구매한 회원 id와 재구매한 상품 id를 출력하는 sql을 작성하시오. 결과는 회원 id를 기준으로 오름차순 정렬해주시고 회원 id가 같다면 상품 id를 기준으로 내림차순 정렬해주세요. 📑 풀이 동일 회원이 동일 상품을 구매한 컬럼을 조회하는 것. 그렇다면 컬럼의 기준을 그룹..
-
[Oracle] ROWNUM, 순번매기기 Order byDB/ORACLE 2023. 1. 16. 15:52
프로그래머스 문제를 푸는데 상위 N개의 레코드를 구하는 문제가 나왔다. (보호소에 가장 먼저 들어온 동물 조회) mysql로 푼다면 order by로 정렬한 다음 LINIT 1;을 줘서 구하면 되는데, 오라클은 ROWNUM을 사용해야 된다. 한참 ROWNUM 안 보다가 오랜만에 보니 헷갈려서 정리하려 한다. select name from ( select rownum, name from ANIMAL_INS order by datetime )where rownum < 2; https://school.programmers.co.kr/learn/courses/30/lessons/59405?language=oracle 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 ..