반응형
https://www.acmicpc.net/problem/2508
- 문제
사탕의 모양이 나타나는 횟수를 출력하는 문제다. 접근 방법을 생각해보면 '>'라는 문자를 발견하면 해당 문자 이후의 두 개의 문자가 'o' 그리고 '<'이면 +1을 하면 될 것이고, 'v'라는 문자를 발견하면, 해당 문자로부터 아래로 두칸 가는 동안 'o'와 '^'가 있으면 +1을 하면 될 것 같다.
- 해설
해당 문자열을 입력받은 이후 모든 문자열에 대해서 '>o<' 혹은 세로로 'vo^'가 나오는 지 확인하고 해당하면 +1을 하여 최종 개수를 출력하였다.
- 풀이
import sys
T = int(sys.stdin.readline())
for _ in range(T):
sys.stdin.readline()
A = []
count = 0
r, c = map(int, sys.stdin.readline().split())
for _ in range(r):
A.append(sys.stdin.readline())
for i in range(r):
for j in range(c-2):
if A[i][j] == '>' and A[i][j+1] == 'o' and A[i][j+2] == '<':
count += 1
for i in range(r-2):
for j in range(c):
if A[i][j] == 'v' and A[i+1][j] == 'o' and A[i+2][j] == '^':
count += 1
print(count)
문제 해설이랑 다를게 없는데, for문의 range, 즉 범위를 유의해서 봐야한다. j를 +1, 그리고 +2하면서 확인할 때는 총 range에 -2를 해서 list의 범위를 초과하지 않도록 하고, 마찬가지로 i의 경우에도 -2를하여 범위를 초과하지 않도록 해야한다.
반응형
'Algorithm > Baekjoon BOJ' 카테고리의 다른 글
[백준][파이썬] 2828번 : 사과 담기 게임(코드, 해설, 풀이) (0) | 2022.05.01 |
---|---|
[백준][파이썬] 1475번 : 방 번호(코드, 해설, 풀이) (0) | 2022.05.01 |
[백준][파이썬] 1439번 : 뒤집기(코드, 해설, 풀이) (0) | 2022.04.17 |
[백준][파이썬] 1500번 : 최대 곱(코드, 해설, 풀이) (0) | 2022.04.16 |
[백준][파이썬] 4796번 : 캠핑(코드, 해설, 풀이) (0) | 2022.04.13 |