• [백준_13419] 탕수육 (구현[implementation])

    2021. 1. 16.

    by. KimBangg

    문제

    접근법

    실제 우리가 아는 탕수육 게임을 프로그래밍을 옮겨 놓은 문제이다!

    여담으로, 나는 실제 탕수육 게임을 할 때도 저 방법을 사용해서 규칙을 찾는데 크게 어려움을 겪지는 않았다.

     

    다만 탕수육 게임과는 다른 점이 있었는데 제시되는 글자의 수가 달랐다. 탕수육의 경우에는 탕, 육, 수만 반복하면 되었지만 ABCD와 같은 짝수의 경우 패턴이 변화한다.

     

    수가 변화 함에 따라 패턴은 크게 2가지로 나뉠 수 있는데 나의 경우 짝수와 홀수를 기준으로 문제에 접근을 하였다.

     

    [1] 짝수

    짝수의 경우는 크게 어렵지 않다. 자신의 순서를 기준으로 2칸씩 증가 시킨 값만 말하면 된다.

    예를 들어보자면, 티스토리라는 제시어가 주어졌을 때 내가 첫 번째 순서인 경우에는 "티" "토" 만 말하면 되고,

    두 번째 순서의 경우에는 "스" "리" 만 말하면 된다.

     

    [2] 홀수

    홀수는 규칙을 찾는데 꽤 어려웠지만 시간이 오래 걸리지는 않았던 것 같다.

     

    예시를 통해 이를 설명 해보고자 한다.

     

    "카카오페이" 로 예를 들었을 때 내가 먼저 시작하게 된다면 내가 말해야 하는 글자들은 "카" "오" "이" "카" "페" 이다.

    탕수육과 비교해보면 패턴이 더욱 명확히 보이게 되는데 그 정답은 바로 처음에는 2칸씩 (카O오O이) 띄어 놓은 값을 출력하고 그 뒤에 (O카O페O) 부분을 더해서 출력 해주면 된다는 것이였다.

     

    코드(정답)

    t = int(input())
    games=[]
    for _ in range(t):
      games.append(input())
    
    for game in games:
        if len(game) %2 == 0: #문자열의 길이가 짝수일 때
          print(game[0::2])  #인덱스가 0인것 부터 2씩 증가하면서 가져온다
          print(game[1::2])  #인덱스가 1인것 부터 2씩 증가면서 가져온다
        else:
          print(game[0::2],game[1::2], sep='')  #sep='' 안붙여주면 공백이 출력되기 때문
          print(game[1::2],game[0::2],sep='')

    댓글