일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 릿코드
- 코테준비
- 알고리즘문제풀이
- 독서노트
- Trie
- IOS
- 알고리즘 문제풀이
- backjoon
- SWIFT
- 스위프트
- 전자공학
- 이산신호처리
- DSP
- 코딩테스트
- leetcode
- 카카오 코딩테스트
- 신호처리
- 알고리즘
- dft
- 프로그래머스
- 백준
- leet code
- DTFT
- 파이썬
- 트라이
- 컨볼루션
- PYTHON
- SWIFTUI
- 코테
- Leet Coding Challenge
- Today
- Total
매일 매일 성장하는 섭섭군
[Seop's의 코드풀이] Back_Joon_1085_직사각형에서_탈출 본문
안녕하세요 섭섭군입니다.
프로그래을 공부하시는 분들이라면 한번쯤은 들어보셨을 Back_Joon에서 문제를 풀고있습니다.
이번 포스팅에서 진행할 문제는 1085번 문제인 직사각형에서의 탈출입니다.
알고리즘 문제풀기의 첫 포스팅이기 때문에 굉장히 쉬운 정답률 57%의 문제로 잡았습니다.
문제는 다음과 같습니다.
https://www.acmicpc.net/problem/1085
문제
한수는 지금 (x, y)에 있다. 직사각형의 왼쪽 아래 꼭짓점은 (0, 0)에 있고, 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 x y w h가 주어진다. w와 h는 1,000보다 작거나 같은 자연수이고, x는 1보다 크거나 같고, w-1보다 작거나 같은 자연수이고, y는 1보다 크거나 같고, h-1보다 작거나 같은 자연수이다.
출력
첫째 줄에 문제의 정답을 출력한다.
예제로 주어진 입력은
6 2 10 3
이었으며 출력은
1
입니다.
이해하기 쉽도록 예제 입력을 좌표평면상에 그려보면 다음과 같이 나타낼 수 있습니다.
x,y에서 가장자리로 가는 가장 짧은 경로를 구하는 문제입니다.
위, 아래, 좌, 우
딱 4가지 경우만 고려하고 이중에서 가장 적은 값을 출력해내면
어렵지 않게 문제를 해결 할 수 있습니다.
경로를 식으로 표현해 보면
왼쪽으로 탈출 : x
오른쪽으로 탈출 : w-x
아래쪽으로 탈출 :y
위쪽으로 탈출 : h-y
참 쉽죠 이거를 배열에 넣든 리스트에 넣든해서
최소값을 구해내면 정답이 나오게 됩니다.
저는 파이썬으로 다음과 같이 구현하였습니다.
x,y,w,h = map(int, input().split(' '))
case = [x,y,w-x,h-y]
answer = min(case)
print(answer)
문제풀이를 진행하기도 민망한 문제라서 좀 그렇지만
첫 문제풀이 포스팅인 만큼 연습삼아 진행했습니다.
감사합니다.
'알고리즘 문제풀이 > 백준' 카테고리의 다른 글
[Seop's의 코드풀이] 백준 1431 시리얼 번호 - Python (0) | 2020.04.26 |
---|---|
[Seop's의 코드풀이] Back_Joon 10825 국영수 , Python (0) | 2020.04.21 |
[Seop's의 코드풀이] Back_Joon 9012 괄호 (0) | 2020.04.20 |
[Seop's의 코드풀이] Back_Joon 10828 스택 python (0) | 2020.04.20 |
[Seop's의 코드풀이] Back_Joon_2798_블랙잭_by_Python (0) | 2019.10.25 |