SWEA (SW Expert Academy)/D3

[SWEA/D3] 1220 Magnetic

hellosonic 2023. 4. 26. 18:22

문제 바로가기

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

나의 코드 및 설명

  • 0은 배제하고 1(N)과 2(S)가 "12"의 형태로 붙어있다면 교착상태로 본다. 
for test_case in range(1,11):
    n = int(input())
    board = []
    for _ in range(n):
        board.append(list(map(int, input().split())))
        
    count = 0
    for i in range(n):
        temp_list = [] #0을 제외하고 1,2가 연속으로 있는지 확인하기 위한 리스트
        for j in range(n):
            if board[j][i] == 1: #1일 때, 
                if temp_list: #temp_list에 혹시 값이 담겨있다면
                    temp_list.clear() #temp_list를 초기화시키고
                temp_list.append(1) #1을 추가
            if board[j][i] == 2: #2일 때,
                if temp_list: #temp_list에 값이 담겨 있다면 그건 1
                    count += 1 #1,2가 연속으로 있게됨
                    temp_list.clear() #clear
                else:
                    continue
    print("#{} {}".format(test_case, count))

피드백

어떻게 풀어야할지 헤맸다.. "12"로 붙어있다면 교착상태로 보는 것을 힌트를 보고 알았다. 구현 자체는 어렵지 않았다 ... 문제를 풀 꼼수를 찾는 노력을 해야겠다.