목록CodingTest/Baekjoon (27)
모눈종이에 사각사각
🍎[백준 2212] 센서 문제링크 https://www.acmicpc.net/problem/2212 2212번: 센서 첫째 줄에 센서의 개수 N(1 ≤ N ≤ 10,000), 둘째 줄에 집중국의 개수 K(1 ≤ K ≤ 1000)가 주어진다. 셋째 줄에는 N개의 센서의 좌표가 한 개의 정수로 N개 주어진다. 각 좌표 사이에는 빈 칸이 하나 있 www.acmicpc.net ⚾ 코드 import sys input = sys.stdin.readline n = int(input()) k = int(input()) sensors = list(map(int, input().split())) sensors.sort() diff = [sensors[i]-sensors[i-1] for i in range(1, n)] di..
🍎[백준 5557] 1학년 문제링크 https://www.acmicpc.net/problem/5557 5557번: 1학년 상근이가 1학년 때, 덧셈, 뺄셈을 매우 좋아했다. 상근이는 숫자가 줄 지어있는 것을 보기만 하면, 마지막 두 숫자 사이에 '='을 넣고, 나머지 숫자 사이에는 '+' 또는 '-'를 넣어 등식을 만들며 놀 www.acmicpc.net ⚾ 코드 from collections import deque n = int(input()) numbers = list(map(int, input().split())) dp = [[0]*21 for _ in range(n-1)] dp[0][numbers[0]] = 1 for i in range(1, n-1): for j in range(21): if dp..
🍎[백준 9081] 단어 맞추기 문제링크 https://www.acmicpc.net/problem/9081 9081번: 단어 맞추기 입력의 첫 줄에는 테스트 케이스의 개수 T (1 ≤ T ≤ 10)가 주어진다. 각 테스트 케이스는 하나의 단어가 한 줄로 주어진다. 단어는 알파벳 A~Z 대문자로만 이루어지며 항상 공백이 없는 연속된 알 www.acmicpc.net ⚾ 코드 c = int(input()) def solution(s): k = -1 for i in range(len(s)-2, -1, -1): # 뒤에서 부터 돌면서, i가 i+1보다 작은 문자를 찾는다. if s[i] < s[i+1]: k = i break if k == -1: # 그러한 문자가 없다면, 원래 문자가 가장 큰 것. return ..
🍎[백준 16235] 나무 재테크 문제링크 https://www.acmicpc.net/problem/16235 16235번: 나무 재테크 부동산 투자로 억대의 돈을 번 상도는 최근 N×N 크기의 땅을 구매했다. 상도는 손쉬운 땅 관리를 위해 땅을 1×1 크기의 칸으로 나누어 놓았다. 각각의 칸은 (r, c)로 나타내며, r은 가장 위에서부터 www.acmicpc.net ⚾ 코드 import sys input = sys.stdin.readline n, m, k = map(int, input().split()) arr = [list(map(int, input().split())) for _ in range(n)] nutrients = [[5]*n for _ in range(n)] # 양분 저장 trees =..
🍎[백준 5547] 일루미네이션 문제링크 https://www.acmicpc.net/problem/5547 5547번: 일루미네이션 첫째 줄에 두 개의 정수 W와 H가 주어진다. (1 ≤ W, H ≤ 100) 다음 H줄에는 상근이네 집의 건물 배치가 주어진다. i+1줄에는 W개의 정수가 공백으로 구분되어 있다. j번째 (1 ≤ j ≤ w) 정수의 좌표는 www.acmicpc.net ⚾ 코드 import sys from collections import deque input = sys.stdin.readline m, n = map(int, input().split()) temp = [list(map(int, input().split())) for _ in range(n)] # 입력 받은 리스트의 위, 아래..
🍎[백준 15650] N과 M (2) 문제링크 https://www.acmicpc.net/problem/15650 15650번: N과 M (2) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net ⚾ 코드 # 조합 직접 구현 from itertools import combinations n, m = map(int, input().split()) cnt = m numbers = list(range(1, n+1)) # res = [] def combination(pre, now, m): if len(now) < m or m == 0: return..
🍎[백준 15649] N과 M (1) 문제링크 https://www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net ⚾ 코드 # 순열 직접 구현 n, m = map(int, input().split()) cnt = m numbers = list(range(1, n+1)) res = [] def permutation(pre, now, m): if len(now) < m or m == 0: return pre for i in range(len(now)): pre.ap..
🍎[백준 19637] 제목 문제링크 https://www.acmicpc.net/problem/19637 19637번: IF문 좀 대신 써줘 첫 번째 줄에는 칭호의 개수 N (1 ≤ N ≤ 105)과 칭호를 출력해야 하는 캐릭터들의 개수 M (1 ≤ M ≤ 105)이 빈칸을 사이에 두고 주어진다. (1 ≤ N, M ≤ 105) 두 번째 줄부터 N개의 줄에 각 칭 www.acmicpc.net ⚾ 코드 import sys input = sys.stdin.readline n, m = map(int, input().split()) tag = [] for _ in range(n): a, b = map(str, input().split()) tag.append((int(b), a)) users = [int(input..
🍎[백준 2470] 두 용액 문제링크 https://www.acmicpc.net/problem/2470 2470번: 두 용액 첫째 줄에는 전체 용액의 수 N이 입력된다. N은 2 이상 100,000 이하이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 수들은 모두 -1,000,000,000 이상 1,000,00 www.acmicpc.net ⚾ 코드 n = int(input()) array = list(map(int, input().split())) array.sort() left, right, start, end = 0, n-1, 0, n-1 while left abs(array[lef..
🍎[백준 20922] 겹치는 건 싫어 문제링크 https://www.acmicpc.net/problem/20922 20922번: 겹치는 건 싫어 홍대병에 걸린 도현이는 겹치는 것을 매우 싫어한다. 특히 수열에서 같은 원소가 여러 개 들어 있는 수열을 싫어한다. 도현이를 위해 같은 원소가 $K$개 이하로 들어 있는 최장 연속 부분 수열 www.acmicpc.net ⚾ 코드 n, k = map(int, input().split()) number = list(map(int, input().split())) need = {} for i in set(number): # 사용 가능한 수 만큼 저장 # 예) need = {1:2, 2:2, 3:3, 4:2} need[i] = k left, right = 0, 0 re..