ALGORITHM/PYTHON

백준 BAEKJOON 31669번 특별한 학교 탈출 [PYTHON/파이썬]

칼코
반응형

 

 

 

 

 

백준 BAEKJOON 31669번 특별한 학교 탈출 [PYTHON/파이썬]


<문제 출처> (BRONZE Ⅲ)

https://www.acmicpc.net/problem/31669

 

31669번: 특별한 학교 탈출

학생들이 선생님에게 들키지 않고 가장 빠르게 학교에서 탈출했을 때가 몇 교시인지 출력하라. 학생들이 선생님에게 들키지 않고 학교에서 탈출할 수 없다면 ESCAPE FAILED를 출력하라.

www.acmicpc.net

 

 

 

 

 

 

<풀이>

주어진 입력을 기준으로 했을 때

세로 한 줄이 모두 X 일때 학교를 탈출 할 수 있다.

이중 for문을 통해 결과를 구할 수도 있겠지만

나는 zip 함수를 이용하여 배열의 행과 열을 뒤집어서 풀었다. 

아래의 포스팅을 참고하면 좋을 것 같다!

 

Python의 Zip 함수를 활용한 2차원 배열 전환 방법

시작하기에 앞서, zip 함수란? Python에서 사용되는 내장 함수 중 하나로, 여러 개의 순회 가능한(iterable) 객체를 받아 각 객체에서 동일한 인덱스의 요소들을 묶어 튜플로 반환하는 역할을 한다. 아

calkolab.tistory.com

 

 

 

 

 

 

 

 

<코드>

N, M = map(int, input().split())
schoolClass = [list(input()) for _ in range(N)]
zipClass = list(map(list, zip(*schoolClass)))	# 2차원 배열 행과 열 바꾸기

result = 0
for i in range(len(zipClass)):
    if zipClass[i].count("X") == N:
        result = i + 1
        break

if result > 0:
    print(result)
else:
    print("ESCAPE FAILED")

 

 

 

 

 

 

반응형