728x90

Algorithm (Python, Java, SQL) 235

[백준 20300번] 서강근육맨 (Python)

> 파이썬, 그리디 알고리즘, 정렬 📖 문제 : 서강근육맨 (Python) 로니 콜먼 동영상을 보고 보디빌더가 되기로 결심한 향빈이는 PT 상담을 받으러 서강헬스클럽에 갔다. 향빈이가 서강헬스클럽을 선택한 이유는 PT를 받을 때 사용하는 운동기구를 회원이 선택할 수 있다는 점 때문이다. 하지만, 서강헬스클럽은 항상 사람이 많아서 PT를 한 번 받을 때 운동기구를 최대 두 개까지만 선택할 수 있다. 헬스장에 있는 N개의 운동기구를 한 번씩 사용해보고 싶은 향빈이는 PT를 받을 때마다 이전에 사용하지 않았던 운동기구를 선택하기로 계획을 세웠다. 그리고 비용을 절약하기 위해 PT를 받을 때 운동기구를 되도록이면 두 개를 사용하기로 했다. 예를 들어, 헬스장에 총 10개의 운동기구가 있을 경우 PT를 5번 받으..

[백준 4963번] 섬의 개수 (Python) (재귀 문제를 푼다면 ! 항상 필수로sys.setrecursionlimit(100000)으로 재귀 제한을 없애주기)

> 파이썬, 그래프 이론, 그래프 탐색, 너비 우선 탐색, 깊이 우선 탐색 📖 문제 : 섬의 개수 (Python) 정사각형으로 이루어져 있는 섬과 바다 지도가 주어진다. 섬의 개수를 세는 프로그램을 작성하시오. 한 정사각형과 가로, 세로 또는 대각선으로 연결되어 있는 사각형은 걸어갈 수 있는 사각형이다. 두 정사각형이 같은 섬에 있으려면, 한 정사각형에서 다른 정사각형으로 걸어서 갈 수 있는 경로가 있어야 한다. 지도는 바다로 둘러싸여 있으며, 지도 밖으로 나갈 수 없다. 입력 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 지도의 너비 w와 높이 h가 주어진다. w와 h는 50보다 작거나 같은 양의 정수이다. 둘째 줄부터 h개 줄에는 지도가 주어진다. 1은 땅, 0은 ..

[백준 1012번] 유기농 배추 (Python)

> 파이썬, 그래프 이론, 그래프 탐색, 너비 우선 탐색, 깊이 우선 탐색 📖 문제 : 유기농 배추 (Python) 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 효과적인 배추흰지렁이를 구입하기로 결심한다. 이 지렁이는 배추근처에 서식하며 해충을 잡아 먹음으로써 배추를 보호한다. 특히, 어떤 배추에 배추흰지렁이가 한 마리라도 살고 있으면 이 지렁이는 인접한 다른 배추로 이동할 수 있어, 그 배추들 역시 해충으로부터 보호받을 수 있다. 한 배추의 상하좌우 네 방향에 다른 배추가 위치한 경우에 서로 인접해있는 것이다. 한나가 배추를 재배하는 땅은 고르지 못해서 배추를 군데군데..

[백준 2953번] 배 (Python)

> 파이썬, 수학, 그리디 알고리즘, 정수론 📖 문제 : 배 (Python) 해빈이는 배가 한 척이라도 올까 말까 한 작은 항구 마을에 산다. 그런데 어느 날, 마을을 방문한 적이 있는 모든 배가 한꺼번에 마을을 방문한 날이 있었다. 해빈이는 이 날을 기념해 1일로 센다. 그리고 배가 한 척이라도 마을에 온 날을 신나는 날이라고 하고 특별히 리스트에 기록해두었다. 해빈이는 마을에 방문하는 배들을 관찰한 결과, 이들이 일정한 날자 간격을 두고 주기적으로 항구를 방문한다는 사실을 알아차렸다. 예를 들어, 간격이 3인 배는 1일, 4일, 7일, 10일 등에 해빈이의 마을에 온다. 오늘은 신나는 날이다. 오늘을 포함해서 해빈이의 신나는 날 리스트가 주어질 때, 방문한 배의 최소 수를 구하라. (해빈이는 모든 신..

[백준 20363번] 당근 키우기 (Python)

> 파이썬, 수학, 그리디 알고리즘 📖 문제 : 당근 키우기 (Python) 꽉꽉나라의 농부 오리는 당근을 키우려고 한다. 꽉꽉나라에서는 씨앗이 X만큼의 온기와 Y만큼의 수분을 가지면 당근으로 자란다고 한다. 씨앗은 햇빛을 1번 받을 때마다 1만큼의 온기가 증가하고, 햇빛을 10번 받을 때마다 1만큼의 수분이 감소한다. 씨앗은 물을 1번 받을 때마다 1만큼의 수분이 증가하고, 물을 10번 받을 때마다 1만큼의 온기가 감소한다. 만약, 감소되어야 하는 온기 혹은 수분이 이미 0이라면 감소되지 않는다. 즉, 온기와 수분은 음수가 되지 않는다. 맨 처음 씨앗의 온기와 수분은 0이다. 오리는 당근을 효율적으로 키우기 위해, 당근이 자랄 때까지 햇빛과 물을 주는 횟수의 합을 최소화하려고 한다. 예를 들어, X =..

[백준 12018번] Yonsei TOTO (Python)

> 파이썬, 그리디 알고리즘, 정렬 📖 문제 : Yonsei TOTO (Python) 연세대학교 수강신청이 얼마 전부터 바뀌어, 마일리지 제도로 바뀌었다. 이 제도는 각각의 학생들에게 마일리지를 주어 듣고 싶은 과목에 마일리지를 과목당 1~36을 분배한다. 그리고 모두 분배가 끝이 나면 과목에 대해서 마일리지를 많이 투자한 순으로 그 과목의 수강인원만큼 신청되는 방식이다. 성준이는 연세대학교 재학 중인 학생이다. 성준이는 저번 수강신청에서 실패하여 휴학을 했기 때문에 이번 수강신청만은 필사적으로 성공하려고 한다. 그래서 성준이는 학교 홈페이지를 뚫어버렸다. 그 덕분에 다른 사람들이 신청한 마일리지를 볼 수 있게 되었다. 성준이는 주어진 마일리지로 최대한 많은 과목을 신청하고 싶어 한다. (내가 마일리지를..

[백준 20115번] 에너지 드링크(Python)

> 파이썬, 그리디 알고리즘 📖 문제 : 에너지 드링크(Python) 페인은 에너지 드링크를 좋아하는 회사원이다. 에너지 드링크는 카페인, 아르기닌, 타우린, 나이아신 등의 성분이 들어있어 피로 회복에 도움을 주는 에너지 보충 음료수이다. 야근을 마치고 한밤중에 퇴근하니 벌써 새벽 1시. 하지만 주말은 아직 멀었고, 다음 날에도 정시에 출근해야 하는 페인은 오늘도 에너지 드링크를 찾는다. 반복되는 야근에 지친 나머지, 평소보다 더 많은 에너지와 피로 회복이 필요했던 페인은 집에 있던 에너지 드링크들을 한 데 합쳐서, 하나의 에너지 드링크로 만들어 한번에 마시려 한다. 페인이 에너지 드링크들을 합치는 과정은 다음과 같다. 임의의 서로 다른 두 에너지 드링크를 고른다. 한쪽 에너지 드링크를 다른 쪽 에너지 ..

[프로그래머스 SQL(JOIN)] 주문량이 많은 아이스크림들 조회하기

📖 문제 : 주문량이 많은 아이스크림들 조회하기 문제 설명 다음은 아이스크림 가게의 상반기 주문 정보를 담은 FIRST_HALF 테이블과 7월의 아이스크림 주문 정보를 담은 JULY 테이블입니다. FIRST_HALF 테이블 구조는 다음과 같으며, SHIPMENT_ID, FLAVOR, TOTAL_ORDER는 각각 아이스크림 공장에서 아이스크림 가게까지의 출하 번호, 아이스크림 맛, 상반기 아이스크림 총주문량을 나타냅니다. FIRST_HALF 테이블의 기본 키는 FLAVOR입니다. FIRST_HALF테이블의 SHIPMENT_ID는 JULY테이블의 SHIPMENT_ID의 외래 키입니다. NAME TYPE NULLABLE SHIPMENT_ID INT(N) FALSE FLAVOR VARCHAR(N) FALSE T..

[프로그래머스 SQL(JOIN)] 조건에 맞는 도서와 저자 리스트 출력하기

📖 문제 : 조건에 맞는 도서와 저자 리스트 출력하기 문제 설명 다음은 어느 한 서점에서 판매중인 도서들의 도서 정보(BOOK), 저자 정보(AUTHOR) 테이블입니다. BOOK 테이블은 각 도서의 정보를 담은 테이블로 아래와 같은 구조로 되어있습니다. Column name Type Nullable Description BOOK_ID INTEGER FALSE 도서 ID CATEGORY VARCHAR(N) FALSE 카테고리 (경제, 인문, 소설, 생활, 기술) AUTHOR_ID INTEGER FALSE 저자 ID PRICE INTEGER FALSE 판매가 (원) PUBLISHED_DATE DATE FALSE 출판일 AUTHOR 테이블은 도서의 저자의 정보를 담은 테이블로 아래와 같은 구조로 되어있습니다...

[프로그래머스 SQL(JOIN)] 그룹별 조건에 맞는 식당 목록 출력하기 (RANK() ORDER (ORDER BY A DESC) B 으로 값 등수 매기기 !)

📖 문제 : 그룹별 조건에 맞는 식당 목록 출력하기 문제 설명 다음은 고객의 정보를 담은 MEMBER_PROFILE테이블과 식당의 리뷰 정보를 담은 REST_REVIEW 테이블입니다. MEMBER_PROFILE 테이블은 다음과 같으며 MEMBER_ID, MEMBER_NAME, TLNO, GENDER, DATE_OF_BIRTH는 회원 ID, 회원 이름, 회원 연락처, 성별, 생년월일을 의미합니다. Column name Type Nullable MEMBER_ID VARCHAR(100) FALSE MEMBER_NAME VARCHAR(50) FALSE TLNO VARCHAR(50) TRUE GENDER VARCHAR(1) TRUE DATE_OF_BIRTH DATE TRUE REST_REVIEW 테이블은 다음과 ..

728x90