[BOJ] 10157. ์ž๋ฆฌ๋ฐฐ์ • (๐Ÿฅˆ, ๊ตฌํ˜„)

lemythe423ยท2023๋…„ 5์›” 14์ผ
0

BOJ ๋ฌธ์ œํ’€์ด

๋ชฉ๋ก ๋ณด๊ธฐ
29/133
post-thumbnail

๋ฌธ์ œ

๋ฌธ์ œ
์–ด๋–ค ๊ณต์—ฐ์žฅ์—๋Š” ๊ฐ€๋กœ๋กœ C๊ฐœ, ์„ธ๋กœ๋กœ R๊ฐœ์˜ ์ขŒ์„์ด Cร—R๊ฒฉ์žํ˜•์œผ๋กœ ๋ฐฐ์น˜๋˜์–ด ์žˆ๋‹ค. ๊ฐ ์ขŒ์„์˜ ๋ฒˆํ˜ธ๋Š” ํ•ด๋‹น ๊ฒฉ์ž์˜ ์ขŒํ‘œ (x,y)๋กœ ํ‘œ์‹œ๋œ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด๋ณด์ž. ์•„๋ž˜ ๊ทธ๋ฆผ์€ ๊ฐ€๋กœ 7๊ฐœ, ์„ธ๋กœ 6๊ฐœ ์ขŒ์„์œผ๋กœ ๊ตฌ์„ฑ๋œ 7ร—6๊ฒฉ์žํ˜• ์ขŒ์„๋ฐฐ์น˜๋ฅผ ๋ณด์—ฌ์ฃผ๊ณ  ์žˆ๋‹ค. ๊ทธ๋ฆผ์—์„œ ๊ฐ ๋‹จ์œ„ ์‚ฌ๊ฐํ˜•์€ ๊ฐœ๋ณ„ ์ขŒ์„์„ ๋‚˜ํƒ€๋‚ด๋ฉฐ, ๊ทธ ์•ˆ์— ํ‘œ์‹œ๋œ ๊ฐ’ (x,y)๋Š” ํ•ด๋‹น ์ขŒ์„์˜ ๋ฒˆํ˜ธ๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. ๊ฐ€์žฅ ์™ผ์ชฝ ์•„๋ž˜์˜ ์ขŒ์„๋ฒˆํ˜ธ๋Š” (1,1)์ด๋ฉฐ, ๊ฐ€์žฅ ์˜ค๋ฅธ์ชฝ ์œ„ ์ขŒ์„์˜ ๋ฒˆํ˜ธ๋Š” (7,6)์ด๋‹ค.

์ด ๊ณต์—ฐ์žฅ์— ์ž…์žฅํ•˜๊ธฐ ์œ„ํ•˜์—ฌ ๋งŽ์€ ์‚ฌ๋žŒ์ด ๋Œ€๊ธฐ์ค„์— ์„œ์žˆ๋‹ค. ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ๋Š” ์‚ฌ๋žŒ๋“ค์€ ์ œ์ผ ์•ž์—์„œ๋ถ€ํ„ฐ 1, 2, 3, 4, . ์ˆœ์œผ๋กœ ๋Œ€๊ธฐ๋ฒˆํ˜ธํ‘œ๋ฅผ ๋ฐ›์•˜๋‹ค. ์šฐ๋ฆฌ๋Š” ๋Œ€๊ธฐ๋ฒˆํ˜ธ๋ฅผ ๊ฐ€์ง„ ์‚ฌ๋žŒ๋“ค์— ๋Œ€ํ•˜์—ฌ (1,1)์œ„์น˜ ์ขŒ์„๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ ์‹œ๊ณ„๋ฐฉํ–ฅ์œผ๋กœ ๋Œ์•„๊ฐ€๋ฉด์„œ ๋น„์–ด์žˆ๋Š” ์ขŒ์„์— ๊ด€๊ฐ์„ ์ˆœ์„œ๋Œ€๋กœ ๋ฐฐ์ •ํ•œ๋‹ค. ์ด๊ฒƒ์„ ์ข€ ๋” ๊ตฌ์ฒด์ ์œผ๋กœ ์„ค๋ช…ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

๋จผ์ € ์ฒซ ๋ฒˆ์งธ ์‚ฌ๋žŒ, ์ฆ‰ ๋Œ€๊ธฐ๋ฒˆํ˜ธ 1์ธ ์‚ฌ๋žŒ์€ ์ž๋ฆฌ (1,1)์— ๋ฐฐ์ •ํ•œ๋‹ค. ๊ทธ ๋‹ค์Œ์—๋Š” ์œ„์ชฝ ๋ฐฉํ–ฅ์˜ ์ขŒ์„์œผ๋กœ ์˜ฌ๋ผ๊ฐ€๋ฉด์„œ ๋‹ค์Œ ์‚ฌ๋žŒ๋“ค์„ ๋ฐฐ์ •ํ•œ๋‹ค. ๋งŒ์ผ ๋” ์ด์ƒ ์œ„์ชฝ ๋ฐฉํ–ฅ์œผ๋กœ ๋นˆ ์ขŒ์„์ด ์—†์œผ๋ฉด ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๊ฐ€๋ฉด์„œ ๋ฐฐ์ •ํ•œ๋‹ค. ์˜ค๋ฅธ์ชฝ์— ๋” ์ด์ƒ ๋นˆ์ž๋ฆฌ๊ฐ€ ์—†์œผ๋ฉด ์•„๋ž˜์ชฝ์œผ๋กœ ๋‚ด๋ ค๊ฐ„๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์•„๋ž˜์ชฝ์— ๋” ์ด์ƒ ์ž๋ฆฌ๊ฐ€ ์—†์œผ๋ฉด ์™ผ์ชฝ์œผ๋กœ ๊ฐ€๋ฉด์„œ ๋‚จ์€ ๋นˆ ์ขŒ์„์„ ๋ฐฐ์ •ํ•œ๋‹ค. ์ด ํ›„ ์™ผ์ชฝ์œผ๋กœ ๋” ์ด์ƒ์˜ ๋นˆ ์ขŒ์„์ด ์—†์œผ๋ฉด ๋‹ค์‹œ ์œ„์ชฝ์œผ๋กœ ๋ฐฐ์ •ํ•˜๊ณ , ์ด ๊ณผ์ •์„ ๋ชจ๋“  ์ขŒ์„์ด ๋ฐฐ์ •๋  ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•œ๋‹ค.

์•„๋ž˜ ๊ทธ๋ฆผ์€ 7ร—6๊ณต์—ฐ์žฅ์—์„œ ๋Œ€๊ธฐ๋ฒˆํ˜ธ 1๋ฒˆ๋ถ€ํ„ฐ 42๋ฒˆ๊นŒ์ง€์˜ ๊ด€๊ฐ์ด ์ขŒ์„์— ๋ฐฐ์ •๋œ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์—ฌ์ฃผ๊ณ  ์žˆ๋‹ค.

์—ฌ๋Ÿฌ๋ถ„์€ ๊ณต์—ฐ์žฅ์˜ ํฌ๊ธฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ž์—ฐ์ˆ˜ C์™€ R์ด ์ฃผ์–ด์ ธ ์žˆ์„ ๋•Œ, ๋Œ€๊ธฐ ์ˆœ์„œ๊ฐ€ K์ธ ๊ด€๊ฐ์—๊ฒŒ ๋ฐฐ์ •๋  ์ขŒ์„ ๋ฒˆํ˜ธ (x,y)๋ฅผ ์ฐพ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค.

์ž…๋ ฅ
์ฒซ ์ค„์—๋Š” ๊ณต์—ฐ์žฅ์˜ ๊ฒฉ์ž ํฌ๊ธฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ •์ˆ˜ C์™€ R์ด ํ•˜๋‚˜์˜ ๊ณต๋ฐฑ์„ ์‚ฌ์ด์— ๋‘๊ณ  ์ฐจ๋ก€๋Œ€๋กœ ์ฃผ์–ด์ง„๋‹ค. ๋‘ ๊ฐ’์˜ ๋ฒ”์œ„๋Š” 5 โ‰ค C, R โ‰ค 1,000์ด๋‹ค. ๊ทธ ๋‹ค์Œ ์ค„์—๋Š” ์–ด๋–ค ๊ด€๊ฐ์˜ ๋Œ€๊ธฐ๋ฒˆํ˜ธ K๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋‹จ 1 โ‰ค K โ‰ค 100,000,000์ด๋‹ค.

์ถœ๋ ฅ
์ž…๋ ฅ์œผ๋กœ ์ œ์‹œ๋œ ๋Œ€๊ธฐ๋ฒˆํ˜ธ K์ธ ๊ด€๊ฐ์—๊ฒŒ ๋ฐฐ์ •๋  ์ขŒ์„๋ฒˆํ˜ธ (x,y)๋ฅผ ๊ตฌํ•ด์„œ ๋‘ ๊ฐ’, x์™€ y๋ฅผ ํ•˜๋‚˜์˜ ๊ณต๋ฐฑ์„ ์‚ฌ์ด์— ๋‘๊ณ  ์ถœ๋ ฅํ•ด์•ผ ํ•œ๋‹ค. ๋งŒ์ผ ๋ชจ๋“  ์ขŒ์„์ด ๋ฐฐ์ •๋˜์–ด ํ•ด๋‹น ๋Œ€๊ธฐ๋ฒˆํ˜ธ์˜ ๊ด€๊ฐ์—๊ฒŒ ์ขŒ์„์„ ๋ฐฐ์ •ํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ์—๋Š” 0(์ˆซ์ž ์˜)์„ ์ถœ๋ ฅํ•ด์•ผ ํ•œ๋‹ค.

ํ’€์ด

๊ฐ ์ ์œผ๋กœ ๋ฐฑ์ค€์˜ ๋‹ฌํŒฝ์ด๋ž‘ ๋น„์Šทํ•˜๋‹ค๊ณ  ๋Š๊ผˆ๋‹ค

  1. ๋Œ€๊ธฐ๋ฒˆํ˜ธ๊ฐ€ ์ขŒ์„์˜ ์ „์ฒด ์ˆ˜๋ณด๋‹ค ๋งŽ์„ ๊ฒฝ์šฐ ๋” ๋ณผ ๊ฑฐ ์—†์ด 0 ์ถœ๋ ฅ
  2. ์œ„ ์˜ค๋ฅธ์ชฝ ์•„๋ž˜ ์™ผ์ชฝ ์ˆœ์œผ๋กœ ๋Œ๊ฒŒ ๋˜๊ณ , ๋ฐ˜๋ฐ”ํ€ด ๋Œ ๋•Œ๋งˆ๋‹ค ๋ฐฉ๋ฌธํ•˜๊ฒŒ ๋˜๋Š” ์นธ์˜ ์ˆ˜๊ฐ€ ํ•œ์นธ์”ฉ ์ค„์–ด๋“ค๊ฒŒ ๋œ๋‹ค
  3. ์šฐ์„  ํ–‰ ์ „์ฒด, ๋˜๋Š” ์—ด ์ „์ฒด๋ฅผ ํ•œ ๋ฒˆ ๊ฐ€๋ณธ๋‹ค๊ณ  ๊ฐ€์ •์„ ํ•˜๊ณ  ๋Œ€๊ธฐ๋ฒˆํ˜ธ์—์„œ ์ด๋™ํ•˜๊ฒŒ ๋˜๋Š” ์นธ์˜ ์ˆ˜๋งŒํผ ๋นผ์ฃผ๊ฒŒ ๋œ๋‹ค. ์ด๋•Œ ๋Œ€๊ธฐ๋ฒˆํ˜ธ๊ฐ€ ์Œ์ˆ˜๊ฐ€ ๋˜๋ฉด ๊ทธ ํ–‰ ๋˜๋Š” ์—ด์„ ๋„˜์–ด๊ฐˆ ์ˆ˜ ์—†๋‹ค.
  1. ๊ฐ€์žฅ ์™ผ์ชฝ ์—ด ์˜ฌ๋ผ๊ฐ€๊ธฐ
    • R ๋งŒํผ๋งŒ ์˜ฌ๋ผ๊ฐ€๋ฉด ๋œ๋‹ค.
    • R ๋งŒํผ ์ด๋™ํ–ˆ์„ ๋•Œ ๋Œ€๊ธฐ๋ฒˆํ˜ธ๊ฐ€ ์Œ์ˆ˜๊ฐ€ ๋˜์ง€ ์•Š๋Š”์ง€(๊ฐˆ ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธ)ํ•ด๋ณด๊ณ  ๊ฐ€๋Šฅํ•˜๋ฉด ์ด๋™ํ•˜๊ณ  ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด 1์—ด์—์„œ K๋งŒํผ๋งŒ ์ด๋™ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ 1, K๋ฅผ ๋ฆฌํ„ด
if K - R < 0:
        return 1, K
else:
    K -= R
    y += (R-1)
  1. ํ–‰ -> ์—ด : ํ•œ ํ–‰, ๋˜๋Š” ํ•œ ์—ด์”ฉ ์ค„์—ฌ๊ฐ€๋ฉด์„œ ์œ„์™€ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ๋ฐ˜๋ณต
    • u๋Š” +๋กœ ์ด๋™ํ•˜๋Š”์ง€, -๋กœ ์ด๋™ํ•˜๊ฒŒ ๋˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ํŒ๋ณ„ํ•˜๊ธฐ ์œ„ํ•œ ๋ถ€ํ˜ธ ํŒ๋ณ„๊ฐ’์ด๋‹ค 1 ๋˜๋Š” -1์˜ ๊ฐ’์„ ๊ฐ€์ง
    • ์ค‘๊ฐ„์ค‘๊ฐ„์— ํ–‰(R)์™€ ์—ด(C)์˜ ๊ฐ’์„ -1์”ฉ ํ•ด์ฃผ๋ฉด ์ ์  ์•ˆ์ชฝ์œผ๋กœ ๋Œ ์ˆ˜ ์žˆ๊ฒŒ ๋จ. ๋ฐ˜๋ฐ”ํ€ด ๋Œ๋•Œ๋งˆ๋‹ค ํ•˜๋‚˜์”ฉ ์ค„์–ด๋“ค์–ด์„œ ๋Œ๊ฒŒ ๋˜๊ธฐ ๋•Œ๋ฌธ์—
    while 1:
        C -= 1

        if K-C > 0:
            K -= C
            x += u * C
        else:
            x += u * K
            return x, y
        
        u *= (-1)
        R -= 1

        if K-R > 0:
            K -= R
            y += u * R
        else:
            y += u * K
            return x, y

์ „์ฒด ์ฝ”๋“œ


# 40ms

def arrange_seat(C, R, K):
    x, y = 1, 1
    u = 1

    if K - R < 0:
        return 1, K
    else:
        K -= R
        y += (R-1)

    while 1:
        C -= 1

        if K-C > 0:
            K -= C
            x += u * C
        else:
            x += u * K
            return x, y
        
        u *= (-1)
        R -= 1

        if K-R > 0:
            K -= R
            y += u * R
        else:
            y += u * K
            return x, y


C, R = map(int, input().split())
K = int(input())

if C * R >= K:
    print(*arrange_seat(C, R, K))
else:
    print(0)
profile
์•„๋ฌด๋ง์ด๋‚˜ํ•˜๊ธฐ

0๊ฐœ์˜ ๋Œ“๊ธ€