입력으로 주어진 사진이 어떤 고양이의 사진인지 구분하는 문제이다.
w가 존재한다면 춘배, b라면 나비, g라면 영철의 사진이다. 고양이는 무조건 한마리만 나온다는 조건이 있다. 그렇다면 쉽게 풀 수 있다.
import sys
img = ""
for i in range(15):
img += sys.stdin.readline().replace(" ", "")
if "w" in img:
cat = "chunbae"
elif "b" in img:
cat = "nabi"
elif "g" in img:
cat = "yeongcheol"
print(cat)
💡 replace와 re.sub
replace()는 특정 부분 문자열을 다른 문자열로 대체한다.
re.sub()의 경우 정규표현식(패턴)과 일치하는 부분을 찾아 지정 문자열로 대체한다.
💡 find와 index
- 값이 존재하지 않는다면 find는 -1을 리턴, index는 ValueError가 발생한다.
- find는 문자열에서만, index는 인덱스로 접근할 수 있는 자료형에서 사용가능하다.
- 매개변수는 (찾을 문자열, 시작위치, 종료위치)이다. 찾을 문자열은 필수다.
2차원 배열을 사용할 수도 있다.
l = [list(input().split()) for _ in range(15)]
l = [l[i][j] for i in range(15) for j in range(15)]
print('chunbae' if 'w' in l else 'nabi' if 'b' in l else 'yeongcheol')
triggers = ['w', 'b', 'g']
cat = ['chunbae', 'nabi', 'yeongcheol']
trigger = False
while not trigger:
pixels = input().split()
for p in pixels:
if p in triggers:
print(cat[triggers.index(p)])
trigger = True
break

이렇게 코드를 짜게되면 w를 만나는 순간 더 이상 입력을 받지 않게된다.