본문 바로가기

알고리즘

(63)
백준 1012 - 유기농 배추(파이썬) https://www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 문제 접근 이차원 배열에서 배추의 위치가 1로 주어질 때 인접한 배추가 몇 쌍인지를 구하면 되는 문제 모든 좌표를 확인해서 1일 때 인접한 1들을 전부 0으로 바꾸고 카운트를 증가시키는 방법으로 접근 인접한 1들의 상하좌우를 모두 탐색하기 위해 bfs 활용 정답 코드 from collections import deque dx = [0,0,1,-1] dy = [1, -1, 0,0] t = int(input())..
SWEA - 1983(조교의 성적 매기기, python) https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=2&contestProbId=AV5PwGK6AcIDFAUq&categoryId=AV5PwGK6AcIDFAUq&categoryType=CODE&problemTitle=&orderBy=SUBMIT_COUNT&selectCodeLang=PYTHON&select-1=2&pageSize=10&pageIndex=2 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 접근 학생들의 중간고사, 기말고사, 과제점수가 주어졌을 때 k번째 학생의 학점을 구하는 문제 시뮬레이션 문제로 접근하여 아..
SWEA - 2001. 파리 퇴치(python) https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=2&contestProbId=AV5PzOCKAigDFAUq&categoryId=AV5PzOCKAigDFAUq&categoryType=CODE&problemTitle=&orderBy=INQUERY_COUNT&selectCodeLang=PYTHON&select-1=2&pageSize=10&pageIndex=1 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 접근 이차원 배열을 다룰 수 있는지를 물어보는 문제 입력 값이 적어 간단하게 반복문을 겹쳐서 작성하였다. 작성한 코드 t..
백준 - 13458(시험 감독, python) https://www.acmicpc.net/problem/13458 13458번: 시험 감독 첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000) www.acmicpc.net 문제 접근 교실별 필요한 감독관수를 구해서 더해주었음 작성한 코드 n = int(input()) #시험장별 학생 수 num = list(map(int, input().split())) B, C = map(int, input().split()) #총 감독관 수와 부 감독관 수 viewer = 0 for i in range(n): #시험장별 감..
백준 - 14888(연산자 끼워넣기, python) https://www.acmicpc.net/problem/14888 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, 곱 www.acmicpc.net 문제 접근 주어진 사측연산 기호의 개수에 맞춰 주어진 수들로 만들 수 있는 최대값, 최소값을 구하는 문제 dfs로 수를 하나씩 만들어서 가장 큰 값, 가장 작은 값을 출력 정답 코드 import sys input = sys.stdin.readline N = int(input()) num = list(map(int, input().split..
백준-14501(퇴사, python) https://www.acmicpc.net/problem/14501 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net 문제 접근 주어진 기간동안 상담을 진행할때 벌어들일 수 있는 최대 수익을 구하는 문제 주어진 범위 값이 크지 않아 재귀함수를 통해 모든 경우의 수를 전부 구함 경우의 수를 구할 때 고려할점은 해당 날짜에 상담을 할 것인지 말 것인지를 결정하는 것 정답 코드 n = int(input()) ans = 0 consulting = [] def go(n, index, temp): if index == n: global ans if ans n: return # 상담을 하는 경우 ..
백준 - 11651(좌표 정렬하기, python) https://www.acmicpc.net/problem/11651 11651번: 좌표 정렬하기 2 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 문제 접근 좌표가 주어질때 좌표의 y기준으로 정렬, y 값이 같을 경우 x좌표로 정렬 리스트에 튜플을 활용해서 좌표를 저장한 다음 정렬해주었음 정렬 기준을 커스텀하는 문제인듯 정답 코드 n = int(input()) # 리스트 안에 튜플 g = [] for i in range(n): a, b = map(int, input().split())..
백준-3009(네 번째 점, python) https://www.acmicpc.net/problem/3009 3009번: 네 번째 점 세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오. www.acmicpc.net 문제 접근 점 3개가 주어졌을 때 직사각형을 만드는 나머지 점을 구하는 문제 간단한 구현 문제 유형으로 규칙을 찾으면 되는 문제 x, y 좌표별로 한 번만 나온 좌표를 찾으면 된다.(직접 그려보면 바로 알 수 있다.) 정답 코드 # 리스트에 x, y 좌표 넣기 x_nums = [] y_nums = [] ansX, ansY = 0,0 for i in range(3): X, Y = map(int, (input().split())) x_nums.append(X) y_nums.appe..