Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- 프로그래머스
- 소프티어
- 알고리즘
- baekjoon
- 다트
- 안드로이드
- 코틀린
- 아마존 웹 서비스
- 자바
- softeer
- 현대sw
- GDSC
- Flutter
- 코테
- kotlin
- Android
- Python
- DART
- aws
- java
- 개발
- 파이썬
- VSCode
- 스위프트
- 백준
- SWIFT
- MVVM
- 플러터
- 머신러닝
- programers
Archives
- Today
- Total
조준장 개발자 생존기
[baekjoon] 백준 8911번(파이썬): 거북이 본문
문제
8911번: 거북이
첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 컨트롤 프로그램이 주어진다. 프로그램은 항상 문제의 설명에 나와있는 네가지 명령으로만 이루어져
www.acmicpc.net
알고리즘
- 테스트 케이스만큼 반복
- 반복문을 통해 명령을 확인한다.
- 각 명령에 따라 다음 코드를 수행
- 매 반복마다 거북이가 지나간 영역의 최댓값과 최솟값을 초기화
- 명령이 끝난 후 거북이가 지나간 최대 영역을 출력
코드
import sys
t = int(sys.stdin.readline())
dx = [0, -1, 0, 1]
dy = [1, 0, -1, 0]
for _ in range(t):
order = list(map(str, sys.stdin.readline().strip()))
direction = 0 # 북: 0 서: 1 남: 2 동: 3
min_x, min_y, max_x, max_y = 0, 0, 0, 0
x, y = 0, 0
# 반복문을 통해 명령을 확인
for i in order:
# 명령이 "F"라면 현재 방향으로 이동
if i == "F":
x += dx[direction]
y += dy[direction]
# 명령이 "B"라면 현재 방향의 뒷 방향으로 이동
elif i == "B":
x -= dx[direction]
y -= dy[direction]
# 명령이 "L"이라면 현재 방향의 왼쪽 방향으로 변경
# 현재 방향이 동쪽이라면 북쪽인 0으로 초기화, 다른 방향은 +1
elif i == "L":
if direction == 3:
direction = 0
else:
direction += 1
# 명령이 "R"이라면 현재 방향의 왼쪽 방향으로 변경
# 현재 방향이 북쪽이라면 동쪽인 0으로 초기화, 다른 방향은 -1
elif i == "R":
if direction == 0:
direction = 3
else:
direction -= 1
# 거북이가 지나간 영역의 최솟값과 최대값을 구한다.
min_x = min(min_x, x)
min_y = min(min_y, y)
max_x = max(max_x, x)
max_y = max(max_y, y)
# 거북이가 지나간 영역을 출력
print(abs(max_x - min_x) * abs(max_y - min_y))
github
GitHub - junjange/CodingTest: 내가 푼 코딩 테스트 문제와 해결법
내가 푼 코딩 테스트 문제와 해결법. Contribute to junjange/CodingTest development by creating an account on GitHub.
github.com
'CodingTest > Baekjoon' 카테고리의 다른 글
[baekjoon] 백준 1037번(파이썬): 약수 (0) | 2022.03.07 |
---|---|
[baekjoon] 백준 1018번(파이썬): 체스판 다시 칠하기 (0) | 2022.03.06 |
[baekjoon] 백준 6603번(파이썬): 로또 (0) | 2022.02.15 |
[baekjoon] 백준 4948번(파이썬): 베르트랑 공준 (0) | 2022.02.14 |
[baekjoon] 백준 4307번(파이썬): 개미 (0) | 2022.02.13 |