본문 바로가기

C언어

2025년 2학기 7주차 C언어

N, M = map(int, input().split())
board = [input().strip() for _ in range(N)]

#체스판 색을 체크하는 함수다
def count(x, y):
    re_w, re_b = 0, 0
    for i in range(8):
        for j in range(8):
            if (i + j) % 2 == 0:  #위치가 홀수인지 짝수인지에 따라 색을 판단한다
                if board[y + i][x + j] != 'W':
                    re_w += 1
                if board[y + i][x + j] != 'B':
                    re_b += 1
            else:  # 반대색 칸
                if board[y + i][x + j] != 'B':
                    re_w += 1
                if board[y + i][x + j] != 'W':
                    re_b += 1
    return min(re_w, re_b)
    #덜 칠하는 걸 반환한다
    
min_re = 64 #초기값을 정해준다
#모든 경우의 수를 탐색하게 한다
for y in range(N - 7):
    for x in range(M - 7):
        min_re = min(min_re, count(x, y))
        #기존의 값과 새로 최솟값이라고 나온 값을 비교한다.

print(min_re)

import sys
input = sys.stdin.readline

# 초기 문자열이다
Q = list(input().strip())
M = int(input())

left = Q  # 커서 왼쪽으로 입력받은 문자열의 가장 처음이다.
right = []  # 커서 오른쪽으로 아직 비어있다

#에디터기능을 수행한다
#입력받는 것을 text라는 배열로 만들어 확인한다
for _ in range(M):
    text = input().split()
    if text[0] == 'L':
        if left:
            right.append(left.pop())
    elif text[0] == 'D':
        if right:
            left.append(right.pop())
    elif text[0] == 'B':
        if left:
            left.pop()
    elif text[0] == 'P':
        left.append(text[1])

# 최종 문자열을 출력한다
print(''.join(left + right [::-1]))

 

'C언어' 카테고리의 다른 글

2025년 2학기 9주차 C언어  (0) 2025.11.23
2025년 2학기 8주차 C언어  (0) 2025.11.16
2025년 2학기 6주차 C언어  (0) 2025.11.02
2025년 2학기 5주차 C언어  (0) 2025.10.11
2025년 2학기 4주차 C언어  (1) 2025.10.05