문제풀이/백준(Boj) 문제풀이 188

[백준][분할 정복] 1992. 쿼드트리 (파이썬/Python)

n = int(input()) m = [list(map(int, input())) for _ in range(n)] def quadtree(x, y, n): if n == 1: return str(m[x][y]) result = [] for i in range(x, x + n): for j in range(y, y + n): # 색이 다르면, 다시 분할진행 if m[i][j] != m[x][y]: result.append('(') result.extend(quadtree(x, y, n//2)) result.extend(quadtree(x, y + n//2, n//2)) result.extend(quadtree(x + n//2, y, n//2)) result.extend(quadtree(x + n//2, ..

[백준][그리디 알고리즘] 1744. 수 묶기 (파이썬/Python)

import sys input = sys.stdin.readline n = int(input()) a = [] result = [] for _ in range(n): a.append(int(input())) a.sort() for i in range(1,len(a),2): if a[i-1] 0: a.append(c) else: b.append(c) a.sort()#pop은 뒤에서부터 꺼내기 때문에 오름차순으로 정렬해줘야 함. b.sort() while len(a) != 0 : if len(a) == 1: result += a.pop() else: result += a.pop()*a.pop() while len(b) != 0: result += b.pop() print(result) # for문을 돌면 b..

[백준][그리디 알고리즘] 1946. 신입 사원(파이썬/Python)

import sys input = sys.stdin.readline t = int(input()) for tc in range(t): n = int(input()) rank = [] cnt = 1 for i in range(n): paper, inerview = map(int,input().split()) rank.append([paper, inerview]) rank.sort(key=lambda x:x[0]) #서류점수 기준으로 오름차순 정렬 MAX = rank[0][1] # 첫번째 인터뷰 점수를 기준으로 뒤에 점수보다 높아야 입사 가능 for i in range(1,n): if MAX > rank[i][1]: cnt += 1 MAX = rank[i][1] #다음 비교를 위함 print(cnt)