전체 글 64

[Python]1145번.적어도 대부분의 배수(브루트포스)

1145번: 적어도 대부분의 배수 첫째 줄에 다섯 개의 자연수가 주어진다. 100보다 작거나 같은 자연수이고, 서로 다른 수이다. www.acmicpc.net 💡문제 다섯 개의 자연수가 있다. 이 수의 적어도 대부분의 배수는 위의 수 중 적어도 세 개로 나누어 지는 가장 작은 자연수이다. 서로 다른 다섯 개의 자연수가 주어질 때, 적어도 대부분의 배수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 다섯 개의 자연수가 주어진다. 100보다 작거나 같은 자연수이고, 서로 다른 수이다. 출력 첫째 줄에 적어도 대부분의 배수를 출력한다. 풀이💬 import sys input = sys.stdin.readline numlist = list(map(int, input().split())) num = 2 whil..

알고리즘 문제 2024.03.01

[Python]1157번.단어 공부(구현,문자열)

1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net 💡문제 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. 입력 첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다. 주어지는 단어의 길이는 1,000,000을 넘지 않는다. 출력 첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다. 풀이💬 word = input().upper() s_word =..

알고리즘 문제 2024.02.29

[Python]1032번.명령 프롬프트(구현,문자열)

1032번: 명령 프롬프트 첫째 줄에 파일 이름의 개수 N이 주어진다. 둘째 줄부터 N개의 줄에는 파일 이름이 주어진다. N은 50보다 작거나 같은 자연수이고 파일 이름의 길이는 모두 같고 길이는 최대 50이다. 파일이름은 www.acmicpc.net 💡문제 시작 -> 실행 -> cmd를 쳐보자. 검정 화면이 눈에 보인다. 여기서 dir이라고 치면 그 디렉토리에 있는 서브디렉토리와 파일이 모두 나온다. 이때 원하는 파일을 찾으려면 다음과 같이 하면 된다. dir *.exe라고 치면 확장자가 exe인 파일이 다 나온다. "dir 패턴"과 같이 치면 그 패턴에 맞는 파일만 검색 결과로 나온다. 예를 들어, dir a?b.exe라고 검색하면 파일명의 첫 번째 글자가 a이고, 세 번째 글자가 b이고, 확장자가 ..

알고리즘 문제 2024.02.28

[Python]2163번.초콜릿 자르기(수학,사칙연산)

2163번: 초콜릿 자르기 정화는 N×M 크기의 초콜릿을 하나 가지고 있다. 초콜릿은 금이 가 있는 모양을 하고 있으며, 그 금에 의해 N×M개의 조각으로 나눠질 수 있다. 초콜릿의 크기가 너무 크다고 생각한 그녀는 초콜릿 www.acmicpc.net 💡문제 정화는 N×M 크기의 초콜릿을 하나 가지고 있다. 초콜릿은 금이 가 있는 모양을 하고 있으며, 그 금에 의해 N×M개의 조각으로 나눠질 수 있다. 초콜릿의 크기가 너무 크다고 생각한 그녀는 초콜릿을 친구들과 나눠 먹기로 했다. 이를 위해서 정화는 초콜릿을 계속 쪼개서 총 N×M개의 조각으로 쪼개려고 한다. 초콜릿을 쪼갤 때에는 초콜릿 조각을 하나 들고, 적당한 위치에서 초콜릿을 쪼갠다. 초콜릿을 쪼갤 때에는 금이 가 있는 위치에서만 쪼갤 수 있다. ..

알고리즘 문제 2024.02.27

[Python]11557번.Yangjojang of The Year(구현,정렬)

11557번: Yangjojang of The Year 입학 OT때 누구보다도 남다르게 놀았던 당신은 자연스럽게 1학년 과대를 역임하게 되었다. 타교와의 조인트 엠티를 기획하려는 당신은 근처에 있는 학교 중 어느 학교가 술을 가장 많이 먹는지 www.acmicpc.net 💡문제 입학 OT때 누구보다도 남다르게 놀았던 당신은 자연스럽게 1학년 과대를 역임하게 되었다. 타교와의 조인트 엠티를 기획하려는 당신은 근처에 있는 학교 중 어느 학교가 술을 가장 많이 먹는지 궁금해졌다. 학교별로 한 해동안 술 소비량이 주어질 때, 가장 술 소비가 많은 학교 이름을 출력하여라. 입력 입력의 첫 줄에는 테스트 케이스의 숫자 T가 주어진다. 매 입력의 첫 줄에는 학교의 숫자 정수 N(1 ≤ N ≤ 100)이 주어진다. 이..

알고리즘 문제 2024.02.26

[Python]2846번.오르막길(구현)

2846번: 오르막길 상근이는 자전거를 타고 등교한다. 자전거 길은 오르막길, 내리막길, 평지로 이루어져 있다. 상근이는 개강 첫 날 자전거를 타고 가면서 일정 거리마다 높이를 측정했다. 상근이는 가장 큰 오르 www.acmicpc.net 💡문제 상근이는 자전거를 타고 등교한다. 자전거 길은 오르막길, 내리막길, 평지로 이루어져 있다. 상근이는 개강 첫 날 자전거를 타고 가면서 일정 거리마다 높이를 측정했다. 상근이는 가장 큰 오르막길의 크기를 구하려고 한다. 측정한 높이는 길이가 N인 수열로 나타낼 수 있다. 여기서 오르막길은 적어도 2개의 수로 이루어진 높이가 증가하는 부분 수열이다. 오르막길의 크기는 부분 수열의 첫 번째 숫자와 마지막 숫자의 차이이다. 예를 들어, 높이가 다음과 같은 길이 있다고 ..

알고리즘 문제 2024.02.25

[MYSQL] SQL 문법(JOIN,CASE WHEN,RANK,SUBQUERY)

데이터는 한 가지 테이블에 적재되지 않는다. 고객 테이블, 매출 테이블, 상품 테이블과 같이 여러가지 테이블로 분리되어 관리된다. 한 가지 테이블에 모든 정보를 다 담기도 힘들고, 관리 측면에서도 좋은 방법은 아닐 것이다. 1. JOIN 1)LEFT JOIN(LEFT OUTER JOIN) SELECT * FROM order LEFT JOIN customers ON order.고객 ID = CUSTOMER.고객 ID ex) classicmodels.customers, classicmodels.orders 테이블을 결합하고 ORDERNUMBER 와 COUNTRY를 출력하세요. SELECT A.ORDERNUMBER, B.COUNTRY FROM CLASSICMODELS.CUSTOMERS A LEFT JOIN C..

SQL 문법 2024.02.24

[MYSQL] SQL 문법(SELECT,FROM,WHERE,GROUP BY)

SQL은 데이터베이스에서 필요한 형태의 데이터를 추출 또는 가공하기 위해 사용하는 언어로, 데이터 분석을 위해 필수적인 언어다. SQL은 크게 다음과 같은 형태로 사용되는데, 각 구문에 대해 살펴보고자 한다. SELECT 칼럼, 계산 값 FROM 테이블 명 WHERE 조건 GROUP BY 그룹화 HAVING 그룹화에 사용되는 조건 1. SELECT SELECT 상품 번호 FROM DB명. PRODUCT; 1)칼럼 조회 SELECT 호출하려는 칼럼 FROM DB 명.테이블 명; ex) classicmodels.customers.의 customerNumber를 조회하세요. SELECT CUSTOMERNUMBER FROM CLASSICMODELS.CUSTOMERS; 2)집계 함수 SELECT COUNT(상품 ..

SQL 문법 2024.02.23

[Python]12026번.BOJ거리(DP)

12026번: BOJ 거리 스타트가 링크를 만나는데 필요한 에너지 양의 최솟값을 출력한다. 만약, 스타트가 링크를 만날 수 없는 경우에는 -1을 출력한다. www.acmicpc.net 💡문제 BOJ 거리는 보도블록 N개가 일렬로 놓여진 형태의 도로이다. 도로의 보도블록은 1번부터 N번까지 번호가 매겨져 있다. 스타트의 집은 1번에 있고, 링크의 집은 N번에 있다. 스타트는 링크를 만나기 위해서 점프해가려고 한다. BOJ거리의 각 보도블록에는 B, O, J 중에 하나가 쓰여 있다. 1번은 반드시 B이다. 스타트는 점프를 통해서 다른 보도블록으로 이동할 수 있다. 이때, 항상 번호가 증가하는 방향으로 점프를 해야 한다. 만약, 스타트가 현재 있는 곳이 i번이라면, i+1번부터 N번까지로 점프를 할 수 있다...

알고리즘 문제 2024.02.22

[Python]16174번.점프왕 쩰리(Large)(그래프 이론,그래프 탐색,BFS,DFS)

16174번: 점프왕 쩰리 (Large) 쩰리는 맨 왼쪽 위의 칸에서 출발해 (행, 열)로 나타낸 좌표계로, (1, 1) -> (2, 1) -> (3, 1) -> (3, 3)으로 이동해 게임에서 승리할 수 있다. www.acmicpc.net 💡문제 ‘쩰리’는 점프하는 것을 좋아하는 젤리다. 단순히 점프하는 것에 지루함을 느낀 ‘쩰리’는 새로운 점프 게임을 해보고 싶어 한다. 새로운 점프 게임의 조건은 다음과 같다. ‘쩰리’는 가로와 세로의 칸 수가 같은 정사각형의 구역 내부에서만 움직일 수 있다. ‘쩰리’가 정사각형 구역의 외부로 나가는 경우엔 바닥으로 떨어져 즉시 게임에서 패배하게 된다. ‘쩰리’의 출발점은 항상 정사각형의 가장 왼쪽, 가장 위의 칸이다. 다른 출발점에서는 출발하지 않는다. ‘쩰리’가 ..

알고리즘 문제 2024.02.21

[Python]2792번.보석 상자(이분 탐색)

2792번: 보석 상자 보석 공장에서 보석 상자를 유치원에 기증했다. 각각의 보석은 M가지 서로 다른 색상 중 한 색상이다. 원장 선생님은 모든 보석을 N명의 학생들에게 나누어 주려고 한다. 이때, 보석을 받지 못하 www.acmicpc.net 💡문제 보석 공장에서 보석 상자를 유치원에 기증했다. 각각의 보석은 M가지 서로 다른 색상 중 한 색상이다. 원장 선생님은 모든 보석을 N명의 학생들에게 나누어 주려고 한다. 이때, 보석을 받지 못하는 학생이 있어도 된다. 하지만, 학생은 항상 같은 색상의 보석만 가져간다. 한 아이가 너무 많은 보석을 가져가게 되면, 다른 아이들이 질투를 한다. 원장 선생님은 이런 질투심을 수치화하는데 성공했는데, 질투심은 가장 많은 보석을 가져간 학생이 가지고 있는 보석의 개수..

알고리즘 문제 2024.02.20

[Python]14940번.쉬운 최단거리(그래프 이론,그래프 탐색,BFS)

14940번: 쉬운 최단거리 지도의 크기 n과 m이 주어진다. n은 세로의 크기, m은 가로의 크기다.(2 ≤ n ≤ 1000, 2 ≤ m ≤ 1000) 다음 n개의 줄에 m개의 숫자가 주어진다. 0은 갈 수 없는 땅이고 1은 갈 수 있는 땅, 2는 목표지점이 www.acmicpc.net 💡문제 지도가 주어지면 모든 지점에 대해서 목표지점까지의 거리를 구하여라. 문제를 쉽게 만들기 위해 오직 가로와 세로로만 움직일 수 있다고 하자. 입력 지도의 크기 n과 m이 주어진다. n은 세로의 크기, m은 가로의 크기다.(2 ≤ n ≤ 1000, 2 ≤ m ≤ 1000) 다음 n개의 줄에 m개의 숫자가 주어진다. 0은 갈 수 없는 땅이고 1은 갈 수 있는 땅, 2는 목표지점이다. 입력에서 2는 단 한개이다. 출력 ..

알고리즘 문제 2024.02.19

[Python]1446번.지름길(DP,그래프 이론)

1446번: 지름길 첫째 줄에 지름길의 개수 N과 고속도로의 길이 D가 주어진다. N은 12 이하인 양의 정수이고, D는 10,000보다 작거나 같은 자연수이다. 다음 N개의 줄에 지름길의 시작 위치, 도착 위치, 지름길의 길이 www.acmicpc.net 💡문제 매일 아침, 세준이는 학교에 가기 위해서 차를 타고 D킬로미터 길이의 고속도로를 지난다. 이 고속도로는 심각하게 커브가 많아서 정말 운전하기도 힘들다. 어느 날, 세준이는 이 고속도로에 지름길이 존재한다는 것을 알게 되었다. 모든 지름길은 일방통행이고, 고속도로를 역주행할 수는 없다. 세준이가 운전해야 하는 거리의 최솟값을 출력하시오. 입력 첫째 줄에 지름길의 개수 N과 고속도로의 길이 D가 주어진다. N은 12 이하인 양의 정수이고, D는 1..

알고리즘 문제 2024.02.15

[Python]19939번.박 터뜨리기(그리디)

19939번: 박 터뜨리기 $N$개의 공을 $K$개의 바구니에 문제의 규칙을 만족하면서 나눠 담을 수 있다면, 가장 많이 담긴 바구니와 가장 적게 담긴 바구니의 공의 개수 차이를 출력한다. 나눠 담을 수 없는 경우에는 -1을 www.acmicpc.net 💡문제 K개의 팀이 박 터트리기 게임을 한다. 각 팀은 하나의 바구니를 가지고 있고, 바구니에 들어있는 공을 던져서 자기 팀의 박을 터트려야 한다. 우리는 게임을 준비하기 위해서, N개의 공을 K개의 바구니에 나눠 담아야 한다. 이때, 게임의 재미를 위해서 바구니에 담기는 공의 개수를 모두 다르게 하고 싶다. 즉, N개의 공을 K개의 바구니에 빠짐없이 나누어 담는데, 각 바구니에는 1개 이상의 공이 있어야 하고, 바구니에 담긴 공의 개수가 모두 달라야 한..

알고리즘 문제 2024.02.14

[Python]2302번.극장좌석(DP)

2302번: 극장 좌석 주어진 조건을 만족하면서 사람들이 좌석에 앉을 수 있는 방법의 가짓수를 출력한다. 방법의 가짓수는 2,000,000,000을 넘지 않는다. (2,000,000,000 < 231-1) www.acmicpc.net 💡문제 어떤 극장의 좌석은 한 줄로 되어 있으며 왼쪽부터 차례대로 1번부터 N번까지 번호가 매겨져 있다. 공연을 보러 온 사람들은 자기의 입장권에 표시되어 있는 좌석에 앉아야 한다. 예를 들어서, 입장권에 5번이 쓰여 있으면 5번 좌석에 앉아야 한다. 단, 자기의 바로 왼쪽 좌석 또는 바로 오른쪽 좌석으로는 자리를 옮길 수 있다. 예를 들어서, 7번 입장권을 가진 사람은 7번 좌석은 물론이고, 6번 좌석이나 8번 좌석에도 앉을 수 있다. 그러나 5번 좌석이나 9번 좌석에는 ..

알고리즘 문제 2024.02.08

[Kaggle/MySQL] E-Commerce 데이터분석2️⃣ Actual transactions from UK retailer

[이전 글] [Kaggle/MySQL] E-Commerce 데이터분석1️⃣ Actual transactions from UK retailer E-Commerce Data Actual transactions from UK retailer www.kaggle.com 데이터 생성 국가별 상품별 구매 지표 추출 특정 상품 구매자가 구매한 다른 상품은? 국가별 재구매율 계산 코호트 분석 고객 Segment 우리가 분 supercomputer.tistory.com 이번 시간에는 고객 세그먼트를 직접 나눠보고 첫 구매 고객 수 관련해서 데이터를 추출해 보자❕ 고객 세그먼트 서비스를 이용하는 고객의 특성을 분류할 수 있다면, 서비스 사용자에 대한 이해를 넓힐 수 있고, 타깃 마케팅 같은 개인화된 혜택을 제공할 수 있다..

[Kaggle/MySQL] E-Commerce 데이터분석1️⃣ Actual transactions from UK retailer

E-Commerce Data Actual transactions from UK retailer www.kaggle.com 데이터 생성 국가별 상품별 구매 지표 추출 특정 상품 구매자가 구매한 다른 상품은? 국가별 재구매율 계산 코호트 분석 고객 Segment 우리가 분석할 UK Commerce 데이터 세트는 다음과 같이 구성되어 있다. IncoiceNo: 주문 번호 StockCode: 상품 번호 Description: 상품명 Quantity: 구매 상품 수 UnitPrice: 개당 판매 가격 CustomerID: 고객 번호 Country: 판매 국가 InvoiceDate:판매 일자 국가별, 상품별 구매자 수 및 매출액 먼저 국가별, 상품별로 구매자수, 매출액을 계산해 본다. 국가별, 상품별로 지표를 계산..

[Kaggle/MYSQL]식품 배송 데이터분석 3️⃣Instacart Market Basket Analysis

[이전 글] 구매자 분석 [Kaggle/MYSQL]식품 배송 데이터분석 2️⃣Instacart Market Basket Analysis [이전 글] MYSQL을 사용하여 데이터를 살펴보기 [Kaggle/MySQL] 식품 배송 데이터분석1️⃣ Instacart Market Basket Analysis Instacart Market Basket Analysis | Kaggle www.kaggle.com 데이터 생성 이번에는 Instacart라는 e-comme supercomputer.tistory.com 이제 재구매를 많이 하는 상품을 알아보고, 각 상품의 판매 특성에 대해 살펴보자. 상품 분석 먼저 재구매 비중이 높은 상품을 찾아보자. 상품별 재구매 비중(%)과 주문 건수를 계산한다. SELECT PROD..

[Python]1932번.정수 삼각형(DP)

1932번: 정수 삼각형 첫째 줄에 삼각형의 크기 n(1 ≤ n ≤ 500)이 주어지고, 둘째 줄부터 n+1번째 줄까지 정수 삼각형이 주어진다. www.acmicpc.net 💡문제 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 위 그림은 크기가 5인 정수 삼각형의 한 모습이다. 맨 위층 7부터 시작해서 아래에 있는 수 중 하나를 선택하여 아래층으로 내려올 때, 이제까지 선택된 수의 합이 최대가 되는 경로를 구하는 프로그램을 작성하라. 아래층에 있는 수는 현재 층에서 선택된 수의 대각선 왼쪽 또는 대각선 오른쪽에 있는 것 중에서만 선택할 수 있다. 삼각형의 크기는 1 이상 500 이하이다. 삼각형을 이루고 있는 각 수는 모두 정수이며, 범위는 0 이상 9999 이하이다. 입력 첫째 줄에 삼각형의 크..

알고리즘 문제 2024.01.31

[Kaggle/MYSQL]식품 배송 데이터분석 2️⃣Instacart Market Basket Analysis

[이전 글] MYSQL을 사용하여 데이터를 살펴보기 [Kaggle/MySQL] 식품 배송 데이터분석1️⃣ Instacart Market Basket Analysis Instacart Market Basket Analysis | Kaggle www.kaggle.com 데이터 생성 이번에는 Instacart라는 e-commerce 회사의 데이터를 분석해 보는 시간을 가져보자. 먼저 해당 데이터 세트는 kaggle(Machine Learning Competition)에 존 supercomputer.tistory.com 이전까지 매출과 관련된 지표들을 주로 살펴보았다면, 이제는 구매자에 집중해 데이터를 살펴보자. 먼저 10분위 분석을 통해 서비스의 주문 수가 VIP 고객에게 얼마나 집중되어 있는지 살펴보자. 구..