https://www.acmicpc.net/problem/13413코드for _ in range(int(input())): n = int(input()) othello_1 = input() othello_2 = input() white = 0 black = 0 for i in range(n): if othello_1[i] != othello_2[i]: if othello_1[i] == 'W': white += 1 else: black += 1 print(max(white, black)) 코드는 다음과 같은 단계로 동작한다. 1. 초기 상태와 목표 상태의 같은 위치..
문제풀이/Greedy
https://www.acmicpc.net/problem/12782코드for _ in range(int(input())): n, m = input().split() zero = 0 one = 0 for i in range(len(n)): if n[i] != m[i]: if n[i] == '0': zero += 1 else: one += 1 print(max(zero, one)) 두 숫자가 다른 부분(`n[i] != m[i]`) 중 n[i]가 0인 경우와 1인 경우의 수를 각각 센 뒤에, 둘 중 큰 값이 최소 연산 횟수다. 왜냐하면 숫자를 각각 교환하기보다는 0과 1의 위치를..
https://www.acmicpc.net/problem/11000코드import sysfrom heapq import heappop, heappushinput = sys.stdin.readlinen = int(input())classes = []for _ in range(n): s, t = map(int, input().split()) classes.append([s, t])classes.sort()used = []for i in range(n): if used and used[0]
https://www.acmicpc.net/problem/3216코드import sysinput = sys.stdin.readlinen = int(input())answer = 0buffer = 0for _ in range(n): d, v = map(int, input().split()) buffer += v # 이번 조각을 다운하는데 걸리는 시간 if buffer > 0: answer += buffer # 지연 시간 추가 buffer = 0 buffer -= d # 다운로드에 필요한 시간에서 재생된 시간 빼기print(answer) `buffer`는 다운로드된 노래와 재생된 노래의 시간 차를 말한다. 다운로드될 때는 +, 재생될 때는 -한다.`bu..
https://www.acmicpc.net/problem/2790코드import sysinput = sys.stdin.readlinen = int(input())scores = [int(input()) for _ in range(n)]scores.sort(reverse=True)cutline = scores[0]+1answer = 1for i in range(1, n): possible_max_score = scores[i]+n if cutline > possible_max_score: break cutline = max(cutline, scores[i]+i+1) answer += 1print(answer)