๐Ÿงฉ Algorithm/SWEA

[SWEA] 19185. ์œก์‹ญ๊ฐ‘์ž (Python/D3)

devCloud 2024. 11. 3. 21:01
728x90

[๋ฌธ์ œ ๋งํฌ] ๐Ÿ‘‡

 

SW Expert Academy

SW ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์—ญ๋Ÿ‰ ๊ฐ•ํ™”์— ๋„์›€์ด ๋˜๋Š” ๋‹ค์–‘ํ•œ ํ•™์Šต ์ปจํ…์ธ ๋ฅผ ํ™•์ธํ•˜์„ธ์š”!

swexpertacademy.com


ํ’€์ด

 

๐Ÿ’ก์ž…๋ ฅ๋ฐ›์€ Q ๋ฅผ N๊ณผ M์˜ ๊ธธ์ด๋กœ ๋‚˜๋ˆˆ๋‹ค.

 

์ˆœํ™˜ ๊ตฌ์กฐ

  • ๋ฆฌ์ŠคํŠธ s๋Š” ๊ธธ์ด๊ฐ€ N์ด๊ณ , ๋ฆฌ์ŠคํŠธ t๋Š” ๊ธธ์ด๊ฐ€ M์ด๋ฏ€๋กœ, s์™€ t์˜ ์š”์†Œ๋“ค์€ ์ˆœํ™˜ํ•˜๋ฉด์„œ ์‚ฌ์šฉ๋œ๋‹ค.
  • ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฆฌ์ŠคํŠธ s์— "a", "b", "c"๊ฐ€ ์žˆ๊ณ , ๋ฆฌ์ŠคํŠธ t์— "d", "e", "f", "g"๊ฐ€ ์žˆ๋‹ค๋ฉด,
    • ์ฒซ ๋ฒˆ์งธ ์ด๋ฆ„์€ s[0] + t[0] = "ad",
    • ๋‘ ๋ฒˆ์งธ ์ด๋ฆ„์€ s[1] + t[1] = "be",
    • ์„ธ ๋ฒˆ์งธ ์ด๋ฆ„์€ s[2] + t[2] = "cf",
    • ๋„ค ๋ฒˆ์งธ ์ด๋ฆ„์€ ๋‹ค์‹œ s[0] + t[3] = "ag"๋กœ ๋Œ์•„๊ฐ„๋‹ค.

 

์ฃผ๊ธฐ์  ์ ‘๊ทผ๊ณผ ๋‚˜๋จธ์ง€ ์—ฐ์‚ฐ

  • q % N๊ณผ q % M์„ ์ด์šฉํ•˜๋ฉด, q๋ฒˆ์งธ ์š”์†Œ๋ฅผ N๊ณผ M์˜ ๊ธธ์ด ๋‚ด์—์„œ ๋ฐ˜๋ณต์ ์œผ๋กœ ์ˆœํ™˜ํ•˜๋„๋ก ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.
  • ๋ฆฌ์ŠคํŠธ์˜ ์ธ๋ฑ์Šค๋Š” 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋ฏ€๋กœ, q - 1๋กœ ์กฐ์ •ํ•œ ๋’ค N๊ณผ M์œผ๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ ๊ตฌํ•ด ์ธ๋ฑ์Šค๋ฅผ ์–ป์–ด๋‚ธ๋‹ค
    • ์˜ˆ๋ฅผ ๋“ค์–ด, Y = 5์ผ ๋•Œ s์˜ ์ธ๋ฑ์Šค๋Š” (Y - 1) % N = 4 % N์ด ๋œ๋‹ค.
    • ์ด๋ฅผ ํ†ตํ•ด s์™€ t ๋ฆฌ์ŠคํŠธ์˜ ์š”์†Œ๋“ค์ด ์ˆœํ™˜๋˜๋ฉฐ, N๋ฒˆ์งธ ์ดํ›„์—๋Š” ๋‹ค์‹œ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๋กœ ๋Œ์•„๊ฐ„๋‹ค.

 

์ฝ”๋“œ์—์„œ q % N - 1

  • ์ด ํ‘œํ˜„์€ ๋ฆฌ์ŠคํŠธ์˜ ์ธ๋ฑ์Šค๊ฐ€ 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ•„์š”ํ•œ ์กฐ์ •์ด๋‹ค.
  • ์˜ˆ๋ฅผ ๋“ค์–ด, Y = 1์ด๋ผ๋ฉด, (1 - 1) % N = 0์ด ๋˜์–ด s์™€ t ๋ฆฌ์ŠคํŠธ์˜ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๊ฐ€ ๊ฒฐํ•ฉ๋˜์–ด์•ผ ํ•˜๋ฏ€๋กœ q - 1์„ ํ†ตํ•ด 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ์ธ๋ฑ์Šค๋ฅผ ๋งž์ถ˜๋‹ค.

 

๋”ฐ๋ผ์„œ, q % N๊ณผ q % M์„ ์‚ฌ์šฉํ•˜์—ฌ ๋…„๋„ Y์— ํ•ด๋‹นํ•˜๋Š” ์ด๋ฆ„์„ ์ฃผ๊ธฐ์ ์œผ๋กœ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.

 

Solution

T = int(input())  # ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์ˆ˜
for test_case in range(1, T + 1):
    N, M = map(int, input().split())
    n = input().split()
    m = input().split()
    Q = int(input())
    result = []
    
    # ์œก์‹ญ๊ฐ‘์ž ๊ณ„์‚ฐ
    for _ in range(Q):
        q = int(input())
        result.append(n[q % N - 1] + m[q % M - 1])
        
    print(f"#{test_case} {' '.join(result)}")

 


 

728x90