본문 바로가기

Algorithm80

[BOJ] 17281. ⚾ (python) ✏️ 문제 ⚾는 9명으로 이루어진 두 팀이 공격과 수비를 번갈아 하는 게임이다. 하나의 이닝은 공격과 수비로 이루어져 있고, 총 N이닝 동안 게임을 진행해야 한다. 한 이닝에 3아웃이 발생하면 이닝이 종료되고, 두 팀이 공격과 수비를 서로 바꾼다. 두 팀은 경기가 시작하기 전까지 타순(타자가 타석에 서는 순서)을 정해야 하고, 경기 중에는 타순을 변경할 수 없다. 9번 타자까지 공을 쳤는데 3아웃이 발생하지 않은 상태면 이닝은 끝나지 않고, 1번 타자가 다시 타석에 선다. 타순은 이닝이 변경되어도 순서를 유지해야 한다. 예를 들어, 2이닝에 6번 타자가 마지막 타자였다면, 3이닝은 7번 타자부터 타석에 선다. 공격은 투수가 던진 공을 타석에 있는 타자가 치는 것이다. 공격 팀의 선수가 1루, 2루, 3루.. 2023. 8. 5.
[SQL/SELECT] Lv.1 조건에 맞는 도서 리스트 출력하기 (MySQL, Oracle) ✏️ 문제 다음은 어느 한 서점에서 판매중인 도서들의 도서 정보(BOOK) 테이블입니다. BOOK 테이블은 각 도서의 정보를 담은 테이블로 아래와 같은 구조로 되어있습니다. BOOK 테이블에서 2021년에 출판된 '인문' 카테고리에 속하는 도서 리스트를 찾아서 도서 ID(BOOK_ID), 출판일 (PUBLISHED_DATE)을 출력하는 SQL문을 작성해주세요. 결과는 출판일을 기준으로 오름차순 정렬해주세요. 👾 구현 -- MySQL SELECT book_id, date_format(published_date, '%Y-%m-%d') as published_date from book where category = '인문' and published_date like '2021%' order by publish.. 2023. 8. 4.
[SQL/SELECT] Lv.1 과일로 만든 아이스크림 고르기 (MySQL, Oracle) ✏️ 문제 다음은 종합병원에 속한 의사 정보를 담은 DOCTOR 테이블입니다. DOCTOR 테이블은 다음과 같으며 DR_NAME, DR_ID, LCNS_NO, HIRE_YMD, MCDP_CD, TLNO는 각각 의사이름, 의사ID, 면허번호, 고용일자, 진료과코드, 전화번호를 나타냅니다. DOCTOR 테이블에서 진료과가 흉부외과(CS)이거나 일반외과(GS)인 의사의 이름, 의사ID, 진료과, 고용일자를 조회하는 SQL문을 작성해주세요. 이때 결과는 고용일자를 기준으로 내림차순 정렬하고, 고용일자가 같다면 이름을 기준으로 오름차순 정렬해주세요. 👾 구현 -- MySQL SELECT dr_name, dr_id, mcdp_cd, date_format(hire_ymd, '%Y-%m-%d') FROM doctor .. 2023. 8. 1.
[programmers] Lv.3 입국심사 (java) ✏️ 문제 n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다. 처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시에 한 명만 심사를 할 수 있습니다. 가장 앞에 서 있는 사람은 비어 있는 심사대로 가서 심사를 받을 수 있습니다. 하지만 더 빨리 끝나는 심사대가 있으면 기다렸다가 그곳으로 가서 심사를 받을 수도 있습니다. 모든 사람이 심사를 받는데 걸리는 시간을 최소로 하고 싶습니다. 입국심사를 기다리는 사람 수 n, 각 심사관이 한 명을 심사하는데 걸리는 시간이 담긴 배열 times가 매개변수로 주어질 때, 모든 사람이 심사를 받는데 걸리는 시간의 최솟값을 return 하도록 solution 함수를 작성해주세요. 🤖 알고리즘 #이.. 2023. 7. 30.
[programmers] Lv.3 여행경로 (python) ✏️ 문제 주어진 항공권을 모두 이용하여 여행경로를 짜려고 합니다. 항상 "ICN" 공항에서 출발합니다. 항공권 정보가 담긴 2차원 배열 tickets가 매개변수로 주어질 때, 방문하는 공항 경로를 배열에 담아 return 하도록 solution 함수를 작성해주세요. 🤖 알고리즘 #DFS 🤯 풀이 방법 끝까지 경로를 찾는 거라 DFS를 이용했다. 먼저 알파벳 순서가 앞서는 경로를 찾아야 하기 때문에 항공권을 정렬해주고 인천공항에서 출발하는 경로부터 찾아서 인덱스를 이용해 DFS 현재의 도착 지점에서 출발하는 경우가 있다면 정답 리스트에 넣고 재귀 정답 리스트의 길이가 전체 항공권의 수와 같고, 모두 방문했다면 답에 해당 정렬했기때문에 가장 먼저 나오는 결과가 정답이 됨 처음에는 모두 구했는데, 테스트케이.. 2023. 7. 28.
[programmers] Lv.2 모음사전 (python) ✏️ 문제 사전에 알파벳 모음 'A', 'E', 'I', 'O', 'U'만을 사용하여 만들 수 있는, 길이 5 이하의 모든 단어가 수록되어 있습니다. 사전에서 첫 번째 단어는 "A"이고, 그다음은 "AA"이며, 마지막 단어는 "UUUUU"입니다. 단어 하나 word가 매개변수로 주어질 때, 이 단어가 사전에서 몇 번째 단어인지 return 하도록 solution 함수를 완성해주세요. 🤖 알고리즘 #완전탐색 🤯 풀이 방법 개수가 많지 않아서 완전탐색답게 모두 다 구현해놓고 인덱스로 찾았다. 1, 11, 111, ..., 55555까지 모두 담은 리스트를 만들고, 제공된 단어를 'A' - 1, 'E' - 2 등의 숫자로 매치해서 변경한 후 만들어 놓은 리스트에서 인덱스를 찾으면 된다. 숫자 리스트를 만들 때.. 2023. 7. 26.
728x90