ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [๋ฐฑ์ค€] 20436 ZOAC 3 with Python
    PS 2022. 5. 17. 00:52
    728x90
    ๋ฐ˜์‘ํ˜•

    ๐Ÿ“Œ BOJ 20436 ZOAC 3

    ๐Ÿ’ก ์กฐ๊ฑด

    1. ๋…์ˆ˜๋ฆฌ ํƒ€๋ฒ•์ด๋ž€ ์–‘ ์†์˜ ๊ฒ€์ง€์†๊ฐ€๋ฝ๋งŒ์„ ์ด์šฉํ•ด ํƒ€์ž๋ฅผ ์น˜๋Š” ํƒ€๋ฒ•์ด๋‹ค.
      ์„ฑ์šฐ๋Š” ํ•œ๊ธ€ ์ž์Œ ์ชฝ ์žํŒ์€ ์™ผ์† ๊ฒ€์ง€์†๊ฐ€๋ฝ์œผ๋กœ ์ž…๋ ฅํ•˜๊ณ , ํ•œ๊ธ€ ๋ชจ์Œ ์ชฝ ์žํŒ์€ ์˜ค๋ฅธ์† ๊ฒ€์ง€์†๊ฐ€๋ฝ์œผ๋กœ ์ž…๋ ฅํ•œ๋‹ค.
    2. a์˜ ์ขŒํ‘œ๊ฐ€ (x1, y1)์ด๊ณ , b์˜ ์ขŒํ‘œ๊ฐ€ (x2, y2)์ผ ๋•Œ,
      a์— ์œ„์น˜ํ•œ ์„ฑ์šฐ์˜ ์†๊ฐ€๋ฝ์ด b๋กœ ์ด๋™ํ•˜๋Š” ๋ฐ์—๋Š” a์™€ b์˜ ํƒ์‹œ ๊ฑฐ๋ฆฌ |x1-x2|+|y1-y2| ๋งŒํผ์˜ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฐ๋‹ค.
    3. ๊ฐ ํ‚ค๋ฅผ ๋ˆ„๋ฅด๋Š” ๋ฐ์—๋Š” 1์˜ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฐ๋‹ค.
    4. ์„ฑ์šฐ๋Š” ๋‘ ์†์„ ๋™์‹œ์— ์›€์ง์ผ ์ˆ˜ ์—†๋‹ค.
      ์„ฑ์šฐ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ํ‚ค๋ณด๋“œ๋Š” ์ฟผํ‹ฐ์‹ ํ‚ค๋ณด๋“œ์ด๋ฉฐ, ์•„๋ž˜ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ ์ƒ๊ฒผ๋‹ค.

    1. ์ฒซ ๋ฒˆ์งธ ์ค„์—๋Š” ๋‘ ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž sL, sR์ด ์ฃผ์–ด์ง„๋‹ค. sL, sR์€ ๊ฐ๊ฐ ์™ผ์† ๊ฒ€์ง€์†๊ฐ€๋ฝ, ์˜ค๋ฅธ์† ๊ฒ€์ง€์†๊ฐ€๋ฝ์˜ ์ฒ˜์Œ ์œ„์น˜์ด๋‹ค.
      ๊ทธ ๋‹ค์Œ ์ค„์—๋Š” ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž๋กœ ๊ตฌ์„ฑ๋œ ๋ฌธ์ž์—ด์ด ์ฃผ์–ด์ง„๋‹ค. ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋Š” ์ตœ๋Œ€ 100์ž์ด๋‹ค. ๋นˆ ๋ฌธ์ž์—ด์€ ์ฃผ์–ด์ง€์ง€ ์•Š๋Š”๋‹ค.
      ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง„ ๋ฌธ์ž์—ด์„ ์ถœ๋ ฅํ•˜๋Š” ๋ฐ์— ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์˜ ์ตœ์†Ÿ๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค.
    2. ๊ตฌํ˜„, ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์œ ํ˜•์˜ ๋ฌธ์ œ
    3. ์„ฑ์šฐ๊ฐ€ ๋‘ ์†์„ ๋™์‹œ์— ์›€์ง์ด์ง€ ๋ชปํ•˜๋Š” ์ด์œ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
      1. ์‚ฌ๋žŒ์€ ๋‘ ๊ฐ€์ง€ ์ด์ƒ์˜ ์ผ์„ ๋™์‹œ์— ํ•  ์ˆ˜ ์—†๋‹ค.
      2. ๋Œ€ํ•™์›์ƒ์€ ์‚ฌ๋žŒ์ด๋‹ค.(ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹)
      3. ์„ฑ์šฐ๋Š” ๋Œ€ํ•™์›์ƒ์ด๋‹ค.

    ๐Ÿ–ฅ ์†Œ์Šค ์ฝ”๋“œ

    from sys import stdin
    
    l, r = map(str, stdin.readline().rstrip().split())
    string = stdin.readline().rstrip()
    
    keyboard = ['qwertyuiop', 'asdfghjkl', 'zxcvbnm']
    mo = 'yuiophjklbnm'
    xl, yl, xr, yr = None, None, None, None
    
    for i in range(len(keyboard)):
        if l in keyboard[i]:
            xl, yl = i, keyboard[i].index(l)
    
        if r in keyboard[i]:
            xr, yr = i, keyboard[i].index(r)
    
    ans = 0
    for s in string:
        ans += 1
        if s in mo:
            for i in range(len(keyboard)):
                if s in keyboard[i]:
                    nx = i
                    ny = keyboard[i].index(s)
    
                    ans += abs(xr - nx) + abs(yr - ny)
    
                    xr, yr = nx, ny
                    break
    
        else:
            for i in range(len(keyboard)):
                if s in keyboard[i]:
                    nx = i
                    ny = keyboard[i].index(s)
    
                    ans += abs(xl - nx) + abs(yl - ny)
    
                    xl, yl = nx, ny
                    break
    
    print(ans)

    ๐Ÿ”– ์˜ˆ์ œ ๋ฐ ์‹คํ–‰๊ฒฐ๊ณผ

    ์˜ˆ์ œ

    z o
    zoac

    ์‹คํ–‰๊ฒฐ๊ณผ

    8

    โŒจ๏ธ ๋ฌธ์ œ ํ’€์ด

    1. ๋ฌธ์ œ์— ํ•œ๊ธ€ ์ž์Œ ์ชฝ ์žํŒ์€ ์™ผ์† ๊ฒ€์ง€์†๊ฐ€๋ฝ์œผ๋กœ ์ž…๋ ฅํ•˜๊ณ , ํ•œ๊ธ€ ๋ชจ์Œ ์ชฝ ์žํŒ์€ ์˜ค๋ฅธ์† ๊ฒ€์ง€์†๊ฐ€๋ฝ์œผ๋กœ ์ž…๋ ฅํ•œ๋‹ค.
      ๋ผ๋Š” ๋ฌธ๊ตฌ๊ฐ€ ์žˆ๋‹ค. ์ด๋Š” ์ž์Œ๊ณผ ๋ชจ์Œ์„ ๋”ฐ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ๊ตฌํ˜„์„ ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์„ ๊ฒƒ์ด๋ผ๋Š” ํžŒํŠธ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.
    2. ํ‚ค๋ณด๋“œ๊ฐ€ ์ƒ๊ธด ๋ชจ์–‘์„ ๋”ฐ๋ผ keyboard ๋ฆฌ์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ๋ชจ์Œ์„ ๋”ฐ๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ ๋ชจ์Œ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค๋ฉด, ์•„๋ž˜์™€ ๊ฐ™์ด ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.
    3. keyboard = ['qwertyuiop', 'asdfghjkl', 'zxcvbnm'] mo = 'yuiophjklbnm'
    4. ์ฒซ๋ฒˆ์งธ ์ค„์— ์ฃผ์–ด์ง„ ์†์ด ์œ„์น˜ํ•œ ์•ŒํŒŒ๋ฒณ์„ ์ž…๋ ฅ๋ฐ›์•„, ์† ์œ„์น˜์˜ ์ขŒํ‘œ๋ฅผ ์ €์žฅํ•œ๋‹ค.
    5. ๊ฐ ๋ฌธ์ž๋งˆ๋‹ค ๋ˆ„๋ฅด๋Š” ์‹œ๊ฐ„์€ 1๋งŒํผ ์†Œ์š”๋˜๊ธฐ ๋•Œ๋ฌธ์—, ์ž…๋ ฅํ•˜๋ ค๊ณ  ํ•˜๋Š” ๋ฌธ์ž์—ด์„ ์ˆœํšŒํ•˜๋ฉด์„œ ans + 1์„ ํ•ด์ค€๋‹ค.
    6. ์ž…๋ ฅํ•˜๋ ค๋Š” ๋ฌธ์ž s ๊ฐ€ ๋ชจ์Œ ๋ฆฌ์ŠคํŠธ์— ์žˆ์„ ๋•Œ, ์˜ค๋ฅธ์†์— ํ•ด๋‹นํ•˜๋Š” ์ขŒํ‘œ๋กœ๋ถ€ํ„ฐ ๋ˆ„๋ฅด๋ ค๋Š” ํ‚ค๊นŒ์ง€์˜ ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ ans์— ๋”ํ•ด์ค€๋‹ค.
    7. ์ž…๋ ฅํ•˜๋ ค๋Š” ๋ฌธ์ž s ๊ฐ€ ๋ชจ์Œ ๋ฆฌ์ŠคํŠธ์— ์—†์„ ๋•Œ, ์™ผ์†์— ํ•ด๋‹นํ•˜๋Š” ์ขŒํ‘œ๋กœ๋ถ€ํ„ฐ ๋ˆ„๋ฅด๋ ค๋Š” ํ‚ค๊นŒ์ง€์˜ ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ ans์— ๋”ํ•ด์ค€๋‹ค.
    ๋ฐ˜์‘ํ˜•

    ๋Œ“๊ธ€

Designed by Tistory.