[Baekjoon] 1085 - πŸŸ₯μ§μ‚¬κ°ν˜•μ—μ„œ νƒˆμΆœ

ChobbyΒ·2023λ…„ 10μ›” 12일
1

Baekjoon

λͺ©λ‘ 보기
35/108

πŸ˜€λ¬Έμ œ

ν•œμˆ˜λŠ” μ§€κΈˆ (x, y)에 μžˆλ‹€. μ§μ‚¬κ°ν˜•μ€ 각 변이 μ’Œν‘œμΆ•μ— ν‰ν–‰ν•˜κ³ , μ™Όμͺ½ μ•„λž˜ 꼭짓점은 (0, 0), 였λ₯Έμͺ½ μœ„ 꼭짓점은 (w, h)에 μžˆλ‹€. μ§μ‚¬κ°ν˜•μ˜ κ²½κ³„μ„ κΉŒμ§€ κ°€λŠ” 거리의 μ΅œμ†Ÿκ°’μ„ κ΅¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€.


πŸ˜μž…λ ₯

첫째 쀄에 x, y, w, hκ°€ 주어진닀.


πŸ˜‚μΆœλ ₯

첫째 쀄에 문제의 정닡을 좜λ ₯ν•œλ‹€.


πŸ€£μ œν•œ

1 ≀ w, h ≀ 1,000
1 ≀ x ≀ w-1
1 ≀ y ≀ h-1
x, y, w, hλŠ” μ •μˆ˜

πŸ˜ƒμ˜ˆμ œ

예제 μž…λ ₯ 1 
6 2 10 3
예제 좜λ ₯ 1 
1
예제 μž…λ ₯ 2 
1 1 5 5
예제 좜λ ₯ 2 
1
예제 μž…λ ₯ 3 
653 375 1000 1000
예제 좜λ ₯ 3 
347
예제 μž…λ ₯ 4 
161 181 762 375
예제 좜λ ₯ 4 
161

πŸ˜„μΆœμ²˜

  • 문제λ₯Ό λ²ˆμ—­ν•œ μ‚¬λžŒ: baekjoon

πŸ˜…μ•Œκ³ λ¦¬μ¦˜ λΆ„λ₯˜

  • μˆ˜ν•™
  • κΈ°ν•˜ν•™

πŸ˜Žλ‚˜μ˜ 풀이

예제λ₯Ό μ‰½κ²Œ μ„€λͺ…ν•˜μžλ©΄ λ‹€μŒκ³Ό κ°™λ‹€.

x, y에 μ‚¬λžŒμ΄ 있고 0, 0 λΆ€ν„° w, h κΉŒμ§€κ°€ μ‚¬κ°ν˜•μ˜ 넓이라면 μ–΄λ–€ 길둜 κ°€μ•Ό μ΅œλ‹¨ 루트일까?

λ‹Ήμ—°νžˆ μœ„λ‘œ κ°€λ©΄ 1의 거리둜 λ„μ°©ν•˜λ©°, ν˜„μž¬ μœ„μΉ˜μ—μ„œ 끝 점 κΉŒμ§€μ˜ κ±°λ¦¬λŠ” 끝 점 - ν˜„μž¬ μœ„μΉ˜ 이닀. 이 μ˜ˆμ‹œλŠ” 즉 h - y

const [x, y, w, h] = require('fs').readFileSync('/dev/stdin').toString().trim().split(' ').map(a => Number(a));

// ν•΄λ‹Ή λ¬Έμ œλŠ” ν˜„μž¬ μœ„μΉ˜μΈ x, yμ—μ„œ μ‹œμž‘ μ’Œν‘œ x = 0 || y = 0 으둜 λŒμ•„κ°€λŠ”κ²Œ μ΅œμ†Œ 거리인지
// x, y μ—μ„œ 큰 μ§μ‚¬κ°ν˜•μ˜ ν•œ 경계면 즉 x = w - x || y = h - y 둜 μ˜¬λΌκ°€κ±°λ‚˜ 우츑으둜 κ°€λŠ”κ²Œ μ΅œμ†Œ 거리인지 νŒλ‹¨

// 더 큰 μ‚¬κ°ν˜•μ˜ λ³€μœΌλ‘œ 이동(우ν–₯, 상ν–₯)
const goRight = w - x
const goUp = h - y
// μ›μ μ˜ λ³€μœΌλ‘œ 이동(쒌ν–₯, ν•˜ν–₯)
const goLeft = x
const goDown = y

console.log(Math.min(goRight, goUp, goLeft, goDown))
profile
λ‚΄ 지식을 κ³΅μœ ν•  수 μžˆλŠ” λŒ€λ‹΄ν•¨

0개의 λŒ“κΈ€