Beakjoon&프로그래머스/파이썬
[백준/파이썬] 25165번 영리한 아리의 포탈 타기
현장
2022. 5. 27. 18:30
-Code
n, m = map(int, input().split())
a, d = map(int, input().split())
sr, sc = map(int, input().split())
result = "NO..."
if sr == n and n % 2 == (d + 1) % 2:
result = "YES!"
print(result)
1) 처음 코드
n, m = map(int, input().split())
Map = [[0] * (m + 1) for _ in range(n + 1)]
a, d = map(int, input().split())
sr, sc = map(int, input().split())
Map[sr][sc] = 'M'
result = "YES!"
x, y = a, m // 2
move = 1
if d == 0:
move = -1
while 0 < x <= n and 0 < y <= m:
if y == 1 or y == m:
x += 1
move *= -1
if Map[x][y] == 'M':
result = "NO..."
break
if Map[x][y] == 'M':
result = "NO..."
break
if x == n and y == m:
break
y += move
print(result)
2) 두번째 코드
n, m = map(int, input().split())
a, d = map(int, input().split())
sr, sc = map(int, input().split())
result = "NO..."
if sr == n:
if n % 2 == 1 and a % 2 != d:
result = "YES!"
if n % 2 == 0 and a % 2 == d:
result = "YES!"
print(result)
처음에 배열을 넣어서 푸는 방법으로 했으나 계속 틀려서 다른 방법을 찾아보니 그냥 수식으로 해결하는 방법이 있어서 저 나름대로 수식을 짜서 해봤으나 다시 틀렸습니다. 그래서 다른 방법을 찾아서 해결을 하였으나 정확히 어디가 틀렸는지 반례를 못 찾아서 스스로 좀 더 고민 못한 게 아쉽습니다.