본문 바로가기

분류 전체보기

(107)
백준 - 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..
백준 - 2581(소수, python) https://www.acmicpc.net/problem/2581 2581번: 소수 M이상 N이하의 자연수 중 소수인 것을 모두 찾아 첫째 줄에 그 합을, 둘째 줄에 그 중 최솟값을 출력한다. 단, M이상 N이하의 자연수 중 소수가 없을 경우는 첫째 줄에 -1을 출력한다. www.acmicpc.net 문제 접근 주어진 범위의 소수들의 합과 그 중 최소값을 출력하는 문제 정답 코드 n = int(input()) m = int(input()) ans = [] for i in range(n, m+1): error = 0 if i > 1: # 1만 이하이니 for 문으로 돌려도 될거 같은데? for j in range(2, i): if i %j == 0: error += 1 break if error == 0:..
백준 - 10789(세로읽기, python) https://www.acmicpc.net/problem/10798 10798번: 세로읽기 총 다섯줄의 입력이 주어진다. 각 줄에는 최소 1개, 최대 15개의 글자들이 빈칸 없이 연속으로 주어진다. 주어지는 글자는 영어 대문자 ‘A’부터 ‘Z’, 영어 소문자 ‘a’부터 ‘z’, 숫자 ‘0’ www.acmicpc.net 문제 접근 문자열을 5번 입력받이 이를 한 글자씩 세로로 읽어 출력하면 되는 문제(공백 없이) 입력받는 문자열의 길이를 모르는 것이 문제 핵심 문자열 최대 길이가 15이므로 문자열 끝에 공백을 추가해 모든 문자열의 길이를 15로 맞춤 이후 출력할때 replace를 활용해 공백을 없앰 정답 코드 words = [] #문자열의 길이는 최대 15 for i in range(5): word = i..
SWEA - 간단한 소인수 분해(1945, python) https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5Pl0Q6ANQDFAUq SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 접근 2,3 5, 7, 11로 소인수 분해되는 수가 주어졌을 때 각각의 지수를 출력하는 문제 각 소인수로 몇 번 나눠지는지를 구하면 된다. 정답 코드 n = int(input()) for i in range(1, n+1): a = b = c = d = e = 0 num = int(input()) while(num % 2 == 0): a += 1 num /= 2 while(num % 3 == 0..