알고리즘 56

[백준] 2587번: 대표값2 (파이썬/Python)

목차 개요 2587번: 대표값2 (acmicpc.net) 2587번: 대표값2 어떤 수들이 있을 때, 그 수들을 대표하는 값으로 가장 흔하게 쓰이는 것은 평균이다. 평균은 주어진 모든 수의 합을 수의 개수로 나눈 것이다. 예를 들어 10, 40, 30, 60, 30의 평균은 (10 + 40 + 30 + 60 + www.acmicpc.net 풀이 5개로 고정된 배열을 평균내고, 정렬해서 중앙값을 찾는 문제. sorted를 활용하면 쉽게 정렬할 수 있다. 직접 정렬을 한다면 코드 import sys input = sys.stdin.readline inlst = [] for _ in range(5): inlst.append(int(input())) print(sum(inlst) // 5) print(sorte..

[백준] 2563번: 색종이 (파이썬/Python)

목차 개요 2563번: 색종이 (acmicpc.net) 2563번: 색종이 가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지가 있다. 이 도화지 위에 가로, 세로의 크기가 각각 10인 정사각형 모양의 검은색 색종이를 색종이의 변과 도화지의 변이 평행하도록 www.acmicpc.net 풀이 문제에서 흰색 도화지가 100 * 100으로 고정되어 있어 그 안 속의 원소를 전부 고려하더라도 10000가지밖에 되지 않는다. 그렇기에 2차원 배열을 선언하고 각 원소를 좌표 삼아 값을 매겨 넓이를 구한다. x, y좌표를 순회하기 때문에 이중 반복문을 써야 하지만, 그래봐야 10000가지를 순회하는 것이라 부담이 적다. 코드 import sys input = sys.stdin.readline lst = ..

[백준] 2566번: 최댓값 (파이썬/Python)

목차 개요 2566번: 최댓값 (acmicpc.net) 2566번: 최댓값 첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 위치한 행 번호와 열 번호를 빈칸을 사이에 두고 차례로 출력한다. 최댓값이 두 개 이상인 경우 그 중 한 곳의 위치를 출력한다. www.acmicpc.net 풀이 2차원에서 인덱스까지 찾는 문제. 이런 문제는 진짜 numpy를 쓰면 쉽게 풀 수 있다. 입력을 받을 때 바로 최대값을 찾으면서 진행한다. 코드 import sys input = sys.stdin.readline ans = -1 position = [0,0] for i in range(9): row = list(map(int, input().split())) max_val = max(row) if ans < max_val..

[백준] 2738번: 행렬 덧셈 (파이썬/Python)

목차 개요 2738번: 행렬 덧셈 (acmicpc.net) 2738번: 행렬 덧셈 첫째 줄에 행렬의 크기 N 과 M이 주어진다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 차례대로 주어진다. 이어서 N개의 줄에 행렬 B의 원소 M개가 차례대로 주어진다. N과 M은 100보다 작거나 같 www.acmicpc.net 풀이 2차원 행렬을 사용하는 문제. 같은 차원의 두 행렬을 받고, 그 행렬을 더해주면 되는데 numpy라면 알아서 element-wise 연산을 진행해주지만 기본 파이썬에는 그딴 게 없다. 그래서 결국 2중 반복문을 돌기는 해야하는 것 같다. 먼저 첫번째 행렬을 입력으로 받아 만들어준 뒤에 두번째 행렬을 입력으로 받을 때 바로 첫번째 행렬에 값을 더해준다. 그리고 나오는 값들을 바로 바로 ..

[프로그래머스] 가격이 제일 비싼 식품의 정보 출력하기 (MySQL)

목차 개요 코딩테스트 연습 - 가격이 제일 비싼 식품의 정보 출력하기 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 두 가지 접근 방법이 있다(더 있을 수도). 정렬한 뒤에 LIMIT을 통해 가장 높은 값만 뽑기 서브 쿼리로 PRICE가 최대값인 행 뽑기 코드는 아래 참조! 코드 SELECT * FROM FOOD_PRODUCT ORDER BY PRICE DESC LIMIT 1 ; SELECT * FROM FOOD_PRODUCT WHERE PRICE = ( SELECT MAX(PRICE) FRO..

[프로그래머스] 가장 비싼 상품 구하기 (MySQL)

목차 개요 코딩테스트 연습 - 가장 비싼 상품 구하기 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 MAX를 사용해보는 문제. 이런 정도의 문제는 테이블 설명이 거창하지도 않지만, 문제만 보고도 풀 수 있다. 코드 SELECT MAX(PRICE) "MAX_PRICE" FROM PRODUCT ;

[프로그래머스] 조건에 맞는 회원수 구하기 (MySQL)

목차 개요 코딩테스트 연습 - 조건에 맞는 회원수 구하기 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 COUNT를 쓰는 방법, 그리고 BETWEEN 사용법을 익힐 수 있는 문제. 코드 SELECT COUNT(*) "USERS" FROM USER_INFO WHERE YEAR(JOINED) = 2021 AND AGE BETWEEN 20 AND 29 ;

[프로그래머스] 상위 n개 레코드 (MySQL)

목차 개요 코딩테스트 연습 - 상위 n개 레코드 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 LIMIT을 쓰는 문제. LIMIT을 통해 출력할 행의 갯수를 지정할 수 있다. LIMIT에 값을 하나만 넣으면 출력 갯수만 지정할 수 있고, 두 개를 넣으면 출력을 시작할 인덱스와 출력 갯수를 지정하는 것이다. 코드 SELECT NAME FROM ANIMAL_INS ORDER BY DATETIME LIMIT 0, 1 ; SELECT NAME FROM ANIMAL_INS ORDER BY DATETIM..

[프로그래머스] 여러 기준으로 정렬하기 (MySQL)

목차 개요 코딩테스트 연습 - 여러 기준으로 정렬하기 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 문제 순서를 달리 풀어서 정말 난감하다.. 기초 OF 기초. 코드 SELECT ANIMAL_ID, NAME, DATETIME FROM ANIMAL_INS ORDER BY NAME, DATETIME DESC ;

[프로그래머스] 동물의 아이디와 이름 (MySQL)

목차 개요 코딩테스트 연습 - 동물의 아이디와 이름 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 이게 가장 기초가 되는 문제일 것이다. 코드 SELECT ANIMAL_ID, NAME FROM ANIMAL_INS ;