Algorithm 68

[알고 스터디] 1. 스택(Stack)

1. 스택(stack) [Theory] 1.1 스택은 '선형 자료구조' !! 선형 자료구조 (linear structures)는 여러 개의 값을 선형적으로 가질 수 있는 구조이다. 선형 자료구조는 앞/뒤 로 끝을 가지며 각 끝마다 항목을 조절할 수 있다. 항목의 추가/삭제 방식에 따라 선형 자료구조의 종류가 나뉘게 된다. 스택 / stack 큐 / queue 덱 / deque 연결 리스트 / linked list 정렬 리스트 / sorted list 1.2 그래서 스택이 뭔데? 스택은 여러 개의 값을 가지며 값들 사이의 순서가 중요한 선형 자료형이다. 항목의 추가 및 삭제가 'top'이라 불리는 한쪽에서만 이루어진다. 다른 쪽은 'base'라고 부른다. 따라서 후입선출, Last-In-First-Out ..

Algorithm/STUDY 2023.06.29

[SQL] SELECT > 12세 이하 여자 환자 목록 출력하기

문제 PATIENT 테이블에서 12세 이하인 여자환자의 환자이름, 환자번호, 성별코드, 나이, 전화번호를 조회하는 SQL문을 작성해주세요. 이때 전화번호가 없는 경우, 'NONE'으로 출력시켜 주시고 결과는 나이를 기준으로 내림차순 정렬하고, 나이 같다면 환자이름을 기준으로 오름차순 정렬해주세요. 예시 PATIENT 테이블이 다음과 같을 때 PT_NO PT_NAME GEND_CD AGE TLNO PT22000003 브라운 M 18 01031246641 PT22000004 크롱 M 7 NULL PT22000006 뽀뽀 W 8 NULL PT22000009 한나 W 12 01032323117 PT22000012 뿡뿡이 M 5 NULL PT22000013 크리스 M 30 01059341192 PT22000014..

Algorithm/SQL 2023.03.31

[SQL] SELECT > 흉부외과 또는 일반외과 의사 목록 출력하기

문제 DOCTOR 테이블에서 진료과가 흉부외과(CS)이거나 일반외과(GS)인 의사의 이름, 의사ID, 진료과, 고용일자를 조회하는 SQL문을 작성해주세요. 이때 결과는 고용일자를 기준으로 내림차순 정렬하고, 고용일자가 같다면 이름을 기준으로 오름차순 정렬해주세요. [풀이] 이제 date 형식 다루기 장인이당 ㅎㅎㅎㅎㅎ 잊지말자 MySQL은 DATE_FORMAT(데이터, 형식) Oracle은 TO_CHAR(데이터, 형식) # MySQL SELECT DR_NAME, DR_ID, MCDP_CD, DATE_FORMAT(HIRE_YMD, '%Y-%m-%d') as HIRE_TMD FROM DOCTOR WHERE MCDP_CD = 'CS' or MCDP_CD = 'GS' ORDER BY HIRE_YMD DESC, ..

Algorithm/SQL 2023.03.31

[SQL] SELECT > 조건에 맞는 도서 리스트 출력하기

문제 BOOK 테이블에서 2021년에 출판된 '인문' 카테고리에 속하는 도서 리스트를 찾아서 도서 ID(BOOK_ID), 출판일 (PUBLISHED_DATE)을 출력하는 SQL문을 작성해주세요. 결과는 출판일을 기준으로 오름차순 정렬해주세요. 예시 예를 들어 BOOK 테이블이 다음과 같다면 BOOK_IDCATEGORYAUTHOR_IDPRICEPUBLISHED_DATE 1 인문 1 10000 2020-01-01 2 경제 2 9000 2021-02-05 3 인문 2 11000 2021-04-11 4 인문 3 10000 2021-03-15 5 생활 1 12000 2021-01-10 조건에 속하는 도서는 도서 ID 가 3, 4인 도서이므로 다음과 같습니다. BOOK_IDPUBLISHED_DATE 3 2021-0..

Algorithm/SQL 2023.03.31

[Programmers] 코딩테스트 연습 > Hash > 전화번호 목록

[문제 설명] 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조대 : 119 박준영 : 97 674 223 지영석 : 11 9552 4421 전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 return 하도록 solution 함수를 작성해주세요. [제한 사항] phone_book의 길이는 1 이상 1,000,000 이하입니다. 각 전화번호의 길이는 1 이상 20 이하입니다. 같은 전화번호가 중복해서 들어있지 않습니다. [풀이] ..

[Programmers] 연습문제 > 공원산책

문제 설명 지나다니는 길을 'O', 장애물을 'X'로 나타낸 직사각형 격자 모양의 공원에서 로봇 강아지가 산책을 하려합니다. 산책은 로봇 강아지에 미리 입력된 명령에 따라 진행하며, 명령은 다음과 같은 형식으로 주어집니다. ["방향 거리", "방향 거리" … ] 예를 들어 "E 5"는 로봇 강아지가 현재 위치에서 동쪽으로 5칸 이동했다는 의미입니다. 로봇 강아지는 명령을 수행하기 전에 다음 두 가지를 먼저 확인합니다. 주어진 방향으로 이동할 때 공원을 벗어나는지 확인합니다. 주어진 방향으로 이동 중 장애물을 만나는지 확인합니다. 위 두 가지중 어느 하나라도 해당된다면, 로봇 강아지는 해당 명령을 무시하고 다음 명령을 수행합니다. 공원의 가로 길이가 W, 세로 길이가 H라고 할 때, 공원의 좌측 상단의 좌..

[SQL] SELECT > 과일로 만든 아이스크림 고르기 (Lv.1)

문제 상반기 아이스크림 총주문량이 3,000보다 높으면서 아이스크림의 주 성분이 과일인 아이스크림의 맛을 총주문량이 큰 순서대로 조회하는 SQL 문을 작성해주세요. [풀이] 이 문제는 넘 쉬워서 원트에 성공했다!! 한 번 기억 되살리니 쉽네 ㅋ 여기서 MySQL이랑 Oracle 차이는 as 말고는 없당 재미써 # MySQL SELECT table2.FLAVOR FROM FIRST_HALF as table1 JOIN ICECREAM_INFO as table2 ON table1.FLAVOR = table2.FLAVOR WHERE table1.TOTAL_ORDER > 3000 AND table2.INGREDIENT_TYPE='fruit_based' # Oracle SELECT table2.FLAVOR FROM..

Algorithm/SQL 2023.03.29

[SQL] SELECT > 조건에 부합하는 중고거래 댓글 조회하기 (Lv.1)

문제 USED_GOODS_BOARD와 USED_GOODS_REPLY 테이블에서 2022년 10월에 작성된 게시글 제목, 게시글 ID, 댓글 ID, 댓글 작성자 ID, 댓글 내용, 댓글 작성일을 조회하는 SQL문을 작성해주세요. 결과는 댓글 작성일을 기준으로 오름차순 정렬해주시고, 댓글 작성일이 같다면 게시글 제목을 기준으로 오름차순 정렬해주세요. [풀이] 갑자기 SQL 공부가 하고 싶어서 1일 1SQL을 시작하기로 했다 (뜬금) 왠진 모르겠음,, 그냥,, 그냥임,, 암튼 그냥임,,^_^ 역시 MySQL이랑 Oracle은 문법이 많이 다르다ㅠㅠ 일단 MySQL은 as로 표현해줘야할거같고, 날짜표현시 DATE_FORMAT(데이터, 형식), ASC/DESC 써야되는거같고 Oracle은 as 안써도 표현이 되고..

Algorithm/SQL 2023.03.28

[Programmers] 연습문제 > 옹알이(1)

문제 설명 머쓱이는 태어난 지 6개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음을 최대 한 번씩 사용해 조합한(이어 붙인) 발음밖에 하지 못합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요. 제한사항 1 ≤ babbling의 길이 ≤ 100 1 ≤ babbling[i]의 길이 ≤ 15 babbling의 각 문자열에서 "aya", "ye", "woo", "ma"는 각각 최대 한 번씩만 등장합니다. 즉, 각 문자열의 가능한 모든 부분 문자열 중에서 "aya", "ye", "woo", "ma"가 한 번씩만 등장합니다. 문자열은 알파벳 소문자로..

[Programmers] 연습문제 > 둘만의 암호

문제 설명 두 문자열 s와 skip, 그리고 자연수 index가 주어질 때, 다음 규칙에 따라 문자열을 만들려 합니다. 암호의 규칙은 다음과 같습니다. 문자열 s의 각 알파벳을 index만큼 뒤의 알파벳으로 바꿔줍니다. index만큼의 뒤의 알파벳이 z를 넘어갈 경우 다시 a로 돌아갑니다. skip에 있는 알파벳은 제외하고 건너뜁니다. 예를 들어 s = "aukks", skip = "wbqd", index = 5일 때, a에서 5만큼 뒤에 있는 알파벳은 f지만 [b, c, d, e, f]에서 'b'와 'd'는 skip에 포함되므로 세지 않습니다. 따라서 'b', 'd'를 제외하고 'a'에서 5만큼 뒤에 있는 알파벳은 [c, e, f, g, h] 순서에 의해 'h'가 됩니다. 나머지 "ukks" 또한 위 ..