ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [D3] SWEA 19185. 육십갑자
    SWEA 2024. 4. 27. 04:16

    1. 접근 방식

    문제를 천천히 읽어보고

    예시 문에 있는 n=10,m=12의

    예시를 표처럼 쭉 늘어트리고 작성해보았다.

    1,2,3,4,2018,2019,2020에 해당하는 문자열을 보았다.

    여기서 느낌이 왔다.

    이거 숫자%10,숫자%12에 해당하는 문자열이겠구나!

     

     

    2. 디테일한 구현

    처음에는 인덱스가 1부터 10, 1부터 12니까

    문자열 리스트에 s.insert(0,0) 이런 식으로

    0번째 원소에 0을 넣고 인덱스를 1부터 다룰려했다.

     

    하지만, 크나큰 문제가 발생했다.

    문제는 숫자%10,숫자%12을 했을 때 0이 나올 때

    인덱스 10,12가 아니라 인덱스 0을 가리켜 오답이 나왔다.

     

    해결 방법

    인덱스는 0부터 시작이니까

    단순히 숫자%10,숫자%12에 -1을 해주면 되겠다

    생각을 하였다.

    그 결과 10,12의 배수 일 때 나머지가 0이고 -1을 해주면

    s[-1]이 됨으로써 마지막 원소를 가리키게 되면서

    해결이 되었다.

     

    3. 코드 구현

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    if __name__=='__main__':
       # sys.stdin=open('input2.txt','r')   
        
        
        t=int(input()) ## 총 테스트 케이스 개수
        
        for tc in range(t):
           n,m=map(int,input().split())
           front=list(map(str,input().split()))
           back=list(map(str,input().split()))
          
           q=int(input()) ##알고 싶은 년도 q개
     
           print(f'#{tc+1}', end=' ')
           for qc in range(q):
               y=int(input()) ##알고 싶은 년도
               res=''
           
               res+=front[y%n-1]+back[y%m-1]
               print(res,end=' ')
     
           print()
     
    cs

     

    4. 깨달은 점

    인덱스를 0부터 다루도록 하자

    1부터 다루려는 요행(?)은 부리지 말자

    'SWEA' 카테고리의 다른 글

    [D3] SWEA 19003. 팰린드롬 문제  (0) 2024.04.27
    [D3] SWEA 19113. 식료품 가게  (0) 2024.04.27
    [D3] SWEA 20019. 회문의 회문  (0) 2024.04.27
    [D3] SWEA 20551. 증가하는 사탕 수열  (0) 2024.04.27
    [D3] SWEA 16910. 원 안의 점  (0) 2024.04.27
Designed by Tistory.