Hiya_
๊ฐœ๋ฐœ์ž์ทจ๐ŸŒฑ
Hiya_
Github
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (154)
    • ๐Ÿ’ปBackend (10)
      • ๋ผ์ด์ง•์บ ํ”„ (6)
      • SSAFY | ์‹ธํ”ผ (2)
      • ์‹ ํ•œDS ๊ธˆ์œตSW ์•„์นด๋ฐ๋ฏธ (2)
    • ๐Ÿ“๋ฌธ์ œ ํ’€์ด (102)
      • ๐ŸงฉBaekjoon (47)
      • ๐ŸงฉProgrammers (42)
      • ๐ŸงฉSWExpertAcademy (10)
      • ๐ŸงฉSofteer (3)
    • ๐Ÿ“‚Language (31)
      • Python (3)
      • JAVA (2)
      • SQL (6)
      • English (19)
    • โœจUseful information (5)
    • ๐Ÿ”‘Algorithms (3)
    • ๐Ÿ™Git (2)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • Union
  • ๋‹ค์ต์ŠคํŠธ๋ผ
  • ํ† ์ต๋ฌด๋ฃŒ๊ฐ•์˜
  • ์ฝ”ํ…Œ
  • ํ‹ฐ์Šคํ† ๋ฆฌ์ฑŒ๋ฆฐ์ง€
  • ๋‚ด์žฅํ•จ์ˆ˜
  • 2์ฐจ์› ๋ฐฐ์—ด
  • ๊ทธ๋ฆฌ๋””
  • mysql
  • ํ† ์ต๋…ํ•™
  • BFS
  • ํ† ์ต๊ณต๋ถ€
  • ๋ฆฌ์ŠคํŠธ
  • ์™„์ „ํƒ์ƒ‰
  • sort
  • ํ† ์ต์‹œํ—˜
  • BaekJoon
  • greedy algorithm
  • ์ •๋ ฌ
  • ์˜ค๋ธ”์™„
  • ํ† ์ต๊ธฐ์ถœ
  • ํ† ์ต๋ฌด๋ฃŒ์ž๋ฃŒ
  • ํ•ด์ปค์Šคํ† ์ต
  • ๊ตฌํ˜„
  • ํ† ์ต์ ์ˆ˜
  • UNION ALL
  • ํ•ด์ปค์ŠคํŒŒ๋žญ์ด
  • ๋ฐฑ์ค€
  • ํ† ์ตRC
  • Python

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ


Owner : ๊น€์‹ ์˜
Naver Blog

hELLO ยท Designed By ์ •์ƒ์šฐ.
Hiya_

๊ฐœ๋ฐœ์ž์ทจ๐ŸŒฑ

[Python] 1783 ๋ณ‘๋“  ๋‚˜์ดํŠธ | ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜
๐Ÿ“๋ฌธ์ œ ํ’€์ด/๐ŸงฉBaekjoon

[Python] 1783 ๋ณ‘๋“  ๋‚˜์ดํŠธ | ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜

2023. 1. 25. 00:44

~์‹ค๋ฒ„ 3~

 

https://www.acmicpc.net/problem/1783

 

1783๋ฒˆ: ๋ณ‘๋“  ๋‚˜์ดํŠธ

์ฒซ์งธ ์ค„์— ์ฒด์ŠคํŒ์˜ ์„ธ๋กœ ๊ธธ์ด N์™€ ๊ฐ€๋กœ ๊ธธ์ด M์ด ์ฃผ์–ด์ง„๋‹ค. N๊ณผ M์€ 2,000,000,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๋‹ค.

www.acmicpc.net

 

[๋ฌธ์ œ ํ•ด๊ฒฐ ํฌ์ธํŠธ]

1. ์ œํ•œ ์‚ฌํ•ญ์„ ๋‹จ๊ณ„์ ์œผ๋กœ ๋ถ„๋ฆฌํ•˜๊ธฐ

2. n์˜ ์ œํ•œ ์‚ฌํ•ญ ์ดํ•ดํ•˜๊ธฐ

3. m์˜ ์ œํ•œ ์‚ฌํ•ญ ์ดํ•ดํ•˜๊ธฐ

 


 

1. ์ œํ•œ ์‚ฌํ•ญ์„ ๋‹จ๊ณ„์ ์œผ๋กœ ๋ถ„๋ฆฌํ•˜๊ธฐ

์ฒ˜์Œ์— ๋ฌธ์ œ๋ฅผ ์ฝ์œผ๋ฉด '... ๋ญ ์–ด์ฉŒ๋ผ๋Š” ๊ฑฐ์•ผ' ํ˜น์€ '์ด๊ฑธ ์–ด๋–ป๊ฒŒ ํ’€๋ผ๋Š” ๊ฑฐ์•ผ'๋ผ๋Š” ์ƒ๊ฐ์„ ํ• ์ง€๋„ ๋ชจ๋ฅธ๋‹ค

๋‚ด๊ฐ€ ๊ทธ๋žฌ๋‹ค

 

๋‹ค์‹œ ํ•œ๋ฒˆ ๋ฌธ์ œ๋ฅผ ์ฐฌ์ฐฌํžˆ ์‚ดํŽด๋ณด๊ณ  ์ œํ•œ ์‚ฌํ•ญ์„ ๊ผผ๊ผผํžˆ ์‚ดํŽด๋ณด๋ฉฐ์นจ์ฐฉํ•˜๊ฒŒ ์ƒ๊ฐํ•ด ๋ณผ ํ•„์š”๊ฐ€ ์žˆ๋‹ค.

 

๋ชจ๋“  ์‹œ์ž‘ ์œ„์น˜๋Š” (0, 0)์ด๋ผ๊ณ  ๊ฐ€์ •ํ•œ๋‹ค.

 

์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง€๋Š” n๊ณผ m์˜ ํฌ๊ธฐ์— ๋”ฐ๋ผ ๊ทธ ์ œํ•œ ์‚ฌํ•ญ์ด ๊ฒฐ์ •๋˜๋Š”๋ฐ,

n(ํ–‰ ํ˜น์€ x์ถ•)์€ 3 ์ด์ƒ๋งŒ ๋˜์–ด๋„ 2, 3๋ฒˆ ์›€์ง์ž„์„ ์—ฌ๋Ÿฌ ๋ฒˆ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

(ํ•˜์ง€๋งŒ 5ํšŒ ์ด์ƒ์‹œ ์กฐ๊ฑด์— ์œ„๋ฐฐ๋˜๋ฏ€๋กœ ์ตœ๋Œ€ 4๋ฒˆ๊นŒ์ง€)

 

m(์—ด ํ˜น์€ y์ถ•)์€ ๋‚˜์ดํŠธ์˜ ์›€์ง์ž„์— ๋ฐ˜๋“œ์‹œ ํฌํ•จ๋˜๋Š” ์ค‘์š”ํ•œ ์š”์†Œ์ด๋‹ค.

m์˜ ํฌ๊ธฐ ๋”ฐ๋ผ ์ตœ์ข… ๋‹ต์ด ๊ฒฐ์ •๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

 

 

2. n์˜ ์ œํ•œ ์‚ฌํ•ญ ์ดํ•ดํ•˜๊ธฐ

์•ž์„œ n์˜ ํฌ๊ธฐ์— ๋”ฐ๋ผ ์ œํ•œ ์‚ฌํ•ญ์ด ๊ฒฐ์ •๋œ๋‹ค๊ณ  ํ–ˆ๋‹ค.

์–ด๋–ป๊ฒŒ ๋‹ค๋ฅผ๊นŒ?

 

1) n == 1์ด๋ผ๋ฉด

์•„๋ฌด๋ฆฌ m๊ฐ’์ด ํฌ๋”๋ผ๋„ ์›€์ง์ผ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์—†๋‹ค.

๊ทธ๋Ÿฌ๋ฏ€๋กœ ์‹œ์ž‘ ์œ„์น˜ (0, 0)์„ ์ œ์™ธํ•˜๋ฉด ๋ฐฉ๋ฌธํ•œ ์นธ์€ ์—†๋‹ค.

 

if n == 1:
	print(1)

 

2) n == 2์ด๋ผ๋ฉด

(0, 0)์—์„œ 3๋ฒˆ ์›€์ง์ž„ '1์นธ ์•„๋ž˜๋กœ, 2์นธ ์˜ค๋ฅธ์ชฝ'

(1, 2)์—์„œ 2๋ฒˆ ์›€์ง์ž„ '1์นธ ์œ„๋กœ, 2์นธ ์˜ค๋ฅธ์ชฝ'

......

 

m์ด ์ถฉ๋ถ„ํžˆ ํฌ๋‹ค๋ฉด(7 ์ด์ƒ์ด๋ฉด) ์ด๋ ‡๊ฒŒ 2, 3๋ฒˆ์„ ๋ฐ˜๋ณตํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.

ํ•˜์ง€๋งŒ ์ฃผ์˜ํ•  ์ ์€ ๋ฐฉ๋ฌธํ•œ ์œ„์น˜๊ฐ€ 5๊ตฐ๋ฐ ์ด์ƒ์ด ๋˜๋ฉด 1~4์กฐ ๊ฑด์„ ๋ชจ๋‘ ๋งŒ์กฑํ•ด์•ผ ํ•˜๋Š”๋ฐ,

ํ•ด๋‹น ๊ฒฝ์šฐ๋Š” 2, 3๋ฒˆ๋งŒ ๋งŒ์กฑํ–ˆ์œผ๋ฏ€๋กœ ์ตœ๋Œ€ 4๋ฒˆ๊นŒ์ง€ ๊ฐ€๋Šฅํ•˜๋‹ค

๋ฌผ๋ก  m์ด ์ถฉ๋ถ„ํžˆ ํฌ๋‹ค๋Š” ์กฐ๊ฑด์—์„œ ๋ง์ด๋‹ค.

 

m์ด ์ถฉ๋ถ„ํžˆ ํฌ์ง€ ์•Š๋‹ค๋ฉด 2, 3์กฐ๊ฑด์€ ํ•ญ์ƒ 2์”ฉ ์›€์ง์ด๋ฏ€๋กœ

m//2๋ฒˆ ์›€์ง์ผ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.

์ฒ˜์Œ ์œ„์น˜ (0, 0)์„ ๋”ํ•˜๋Š” ๊ฒƒ๋„ ์žŠ์ง€ ๋ง์ž

 

if n == 2:
	print(min(4, (m-1)//2 + 1))

 

2) n == 3์ด๋ผ๋ฉด

์•ž์„œ ๋งํ–ˆ๋“ฏ n์ด 3 ์ด์ƒ์ด๋ผ๋ฉด n์— ๋Œ€ํ•œ ์ œํ•œ ์‚ฌํ•ญ์€ ๋” ์ด์ƒ ์—†๋‹ค.

๋ชจ๋“  1~4 ์›€์ง์ž„์—์„œ ์œ„, ์•„๋ž˜ ์กฐ๊ฑด์„ ๋งŒ์กฑ์‹œํ‚ฌ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

๊ทธ๋ ‡๋‹ค๋ฉด ์ด์ œ๋ถ€ํ„ฐ๋Š” m์˜ ํฌ๊ธฐ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง„๋‹ค

 

 

 

3. m์˜ ์ œํ•œ ์‚ฌํ•ญ ์ดํ•ดํ•˜๊ธฐ

n์ด 3 ์ด์ƒ์ผ ๋•Œ๋ฅผ ๊ฐ€์ •ํ•˜๊ณ  m์˜ ์ œํ•œ ์‚ฌํ•ญ์„ ์ƒ๊ฐํ•ด์•ผ ํ•œ๋‹ค.

n์˜ ํฌ๊ธฐ๋Š” 3 ์ด์ƒ์ด๊ธฐ๋งŒ ํ•˜๋ฉด ์•„๋ฌด๋ฆฌ ์ปค๋„ ์ตœ์ข… ํฌ๊ธฐ์— ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์—†๋‹ค.

 

๋ชจ๋“  ์›€์ง์ž„์—๋Š” ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๊ฐ€์•ผ ํ•˜๋Š” ์ œํ•œ ์‚ฌํ•ญ์ด ์žˆ๊ณ , ์ด๋ฅผ ์ตœ์†Œํ™”ํ•˜๋Š” ๊ฒƒ์ด

์ด ๋‹ต์˜ ํ•ต์‹ฌ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

1) m <= 6์ด๋ผ๋ฉด?

์ด๋ ‡๊ฒŒ 1์นธ ์˜ค๋ฅธ์ชฝ ์›€์ง์ž„์„ ํฌํ•จํ•˜๋Š” 1, 4๋ฒˆ์œผ๋กœ ์ตœ๋Œ€ ์›€์ง์ž„์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค!

์ด๊ฒŒ ์™œ ์ตœ๋Œ€๋ƒ๋ฉด 2, 3๋ฒˆ ์›€์ง์ž„์ด ๋“ค์–ด๊ฐ€๋Š” ์ˆœ๊ฐ„ m์˜ ์ œํ•œ๋œ ํฌ๊ธฐ๋ฅผ ํ—ˆ๋น„ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค

 

์ตœ๋Œ€ํ•œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๋œ ๊ฐ€๋Š” ๋ฐฉํ–ฅ์ด ํ•ต์‹ฌ์ด๋‹ค!

 

๊ทธ๋Ÿฐ๋ฐ ์ฃผ์˜ํ•  ์ ์€ ๋ชจ๋“  ์›€์ง์ž„์„ ๋งŒ์กฑํ•˜์ง€ ์•Š๋Š” ์ด์ƒ 4 ์ด์ƒ์ด ๋˜๋ฉด ์•ˆ ๋œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค

 

else:
	if m <= 6:
		print(min(4, m))

 

2) m == 7์ด๋ผ๋ฉด?

์šฐ๋ฆฌ๋ฅผ ์˜ญ์•„๋งค๋˜ ์ œํ•œ ์‚ฌํ•ญ์ด ๋ชจ๋‘ ํ•ด๋ฐฉ๋˜์—ˆ๋‹ค!!

 

'n >= 3 and m == 7'์ธ ๊ฒฝ์šฐ์ธ๋ฐ,

๋ชจ๋“  1~4 ์›€์ง์ž„์„ ์ปค๋ฒ„ํ•  ์ˆ˜ ์žˆ๋Š” ํฌ๊ธฐ์ด๊ธฐ ๋•Œ๋ฌธ์— 7์ด์–ด์•ผ๋งŒ ํ–ˆ๋˜ ๊ฒƒ์ด๋‹ค.

๋ชจ๋“  ์›€์ง์ž„์„ ์ปค๋ฒ„ํ•˜๋ฉด ๋‹ค์Œ ๊ฐ™๋‹ค.

๋™๊ทธ๋ผ๋ฏธ ์ˆซ์ž ์ˆœ์„œ๋Œ€๋กœ ์‚ดํŽด๋ณด๋ฉด

3๋ฒˆ : 1์นธ ์•„๋ž˜๋กœ, 2์นธ ์˜ค๋ฅธ์ชฝ

2๋ฒˆ : 1์นธ ์œ„๋กœ, 2์นธ ์˜ค๋ฅธ์ชฝ

4๋ฒˆ : 2์นธ ์•„๋ž˜๋กœ, 1์นธ ์˜ค๋ฅธ์ชฝ

1๋ฒˆ : 2์นธ ์œ„๋กœ, 1์นธ ์˜ค๋ฅธ์ชฝ

 

๋ชจ๋“  ์กฐ๊ฑด์„ ๋งŒ์กฑํ•œ ๋ชจ์Šต์ด๋‹ค.

 

3) m > 7์ด๋ผ๋ฉด?

m์ด 7์ผ ๋•Œ ์กฐ๊ฑด์—์„œ ์กฐ๊ธˆ๋งŒ ๋” ์ƒ๊ฐํ•ด ๋ณด๋ฉด

์˜ค๋ฅธ์ชฝ์œผ๋กœ ๊ฐ€๋Š” ๊ฒƒ์„ ์ตœ์†Œํ™”ํ•˜๋Š” ๊ฒƒ์ด ์ตœ๋Œ€ ์›€์ง์ž„์˜ ํ•ต์‹ฌ์ด๋ผ๋Š” ๊ฒƒ์„ ๋– ์˜ฌ๋ฆด ์ˆ˜ ์žˆ๋‹ค!

 

๊ทธ๋Ÿฌ๋ฏ€๋กœ ๋ชจ๋“  ์กฐ๊ฑด์„ ๋งŒ์กฑํ•œ ์ƒํƒœ ์ดํ›„๋Š” ์›€์ง์ž„์— ์ œํ•œ์ด ์—…์œผ๋ฏ€๋กœ m์˜ ๊ฐ’์„ ๋”ฐ๋ผ

1, 4 ์›€์ง์ž„์„ ๋ฐ˜๋ณตํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

 

์ฆ‰, 7์ผ ๋•Œ ์ตœ๋Œ“๊ฐ’์€ 5

8์ผ ๋•Œ ์ตœ๋Œ€๊ฐ’์€ 6

9์ผ ๋•Œ ์ตœ๋Œ€๊ฐ’์€ 7

......

 

m-2๊ฐ€ ์ตœ๋Œ“๊ฐ’์ด ๋œ๋‹ค.

 

	else:
		print(m-2)

 

 

 

 

 

<์ตœ์ข…์ฝ”๋“œ>

n, m = map(int, input().split())

if n == 1:
    print(1)
elif n == 2:
    print(min(4, (m-1)//2 + 1))
elif m <= 6:
    print(min(4, m))
else:
    print(m-2)

 

'๐Ÿ“๋ฌธ์ œ ํ’€์ด > ๐ŸงฉBaekjoon' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Python] ๋ฐฑ์ค€ 1373 2์ง„์ˆ˜ 8์ง„์ˆ˜| ์‹œ๊ฐ„ ์ดˆ๊ณผ | ๋‚ด์žฅ ํ•จ์ˆ˜ oct  (0) 2023.02.11
[Python] ๋ฐฑ์ค€ 2563 ์ƒ‰์ข…์ด  (2) 2023.02.01
[Python] ๋ฐฑ์ค€ 4796 ์บ ํ•‘ | ๊ทธ๋ฆฌ๋””(Greedy) ์•Œ๊ณ ๋ฆฌ์ฆ˜ | ํƒ์š•์Šค๋Ÿฌ์šด ์•Œ๊ณ ๋ฆฌ์ฆ˜  (0) 2023.01.13
[Python] ๋ฐฑ์ค€ 1181 ๋‹จ์–ด ์ •๋ ฌ | ๋‚ด์žฅํ•จ์ˆ˜  (0) 2023.01.07
[Python] 10989 ์ˆ˜ ์ •๋ ฌํ•˜๊ธฐ 3 | ๋ฉ”๋ชจ๋ฆฌ ์ดˆ๊ณผ | ์‹œ๊ฐ„ ์ดˆ๊ณผ  (2) 2023.01.06
    '๐Ÿ“๋ฌธ์ œ ํ’€์ด/๐ŸงฉBaekjoon' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [Python] ๋ฐฑ์ค€ 1373 2์ง„์ˆ˜ 8์ง„์ˆ˜| ์‹œ๊ฐ„ ์ดˆ๊ณผ | ๋‚ด์žฅ ํ•จ์ˆ˜ oct
    • [Python] ๋ฐฑ์ค€ 2563 ์ƒ‰์ข…์ด
    • [Python] ๋ฐฑ์ค€ 4796 ์บ ํ•‘ | ๊ทธ๋ฆฌ๋””(Greedy) ์•Œ๊ณ ๋ฆฌ์ฆ˜ | ํƒ์š•์Šค๋Ÿฌ์šด ์•Œ๊ณ ๋ฆฌ์ฆ˜
    • [Python] ๋ฐฑ์ค€ 1181 ๋‹จ์–ด ์ •๋ ฌ | ๋‚ด์žฅํ•จ์ˆ˜
    Hiya_
    Hiya_
    ํ•˜์–€ ์ฒœ๊ณผ ๋ฐ”๋žŒ๋งŒ ์žˆ๋‹ค๋ฉด ์–ด๋””๋“  ๊ฐˆ ์ˆ˜ ์žˆ์–ด

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”