백준 30980번 풀이(파이썬)

Posted by : on

Category : PS


여중생 파댕이와 공부를

  • 난이도: 실버 3

    실버 문제라고 가볍게 봤다가 3시간 넘게 정말 힘든 경험을 했다.

    처음에는 삼중배열으로 3X8짜리 배열 nXm개를 만들어서 각각에 변화를 적용시키려고 했다. 하지만 어떻게 해도 내가 원하는대로 쪼개긴 쉽지 않았고, 결국 하나의 배열에서 원소의 주솟값에 직접 접근하는 식으로 방향을 다시 잡았다.(1시간 30분 소요)

    어려운 기술을 요구한다기보단, 문제 자체의 더러움(?)과 내 자잘한 실수가 겹쳐서 시간이 매우 지체된 문제였다. 아래 코드의 9행에서 *과 /을 조건에 넣는 것을 깜빡하거나, 22~23행에서 *를 여러 개가 아닌 하나로 치환하거나, temp_result 없이 input값을 직접 조작해서 전체 값에 영향을 주기도 했다.

    여러모로 감을 잃지 않으려면 꾸준히 공부하는 것이 무엇보다 중요하다는 것을 느끼게 해 준 문제였다.

    코드 전문

    n, m = map(int, input().split())
      inputs = []
    
      for _ in range(n*3):
          inputs.extend(input())
    
      i = 0
      while i < len(inputs):
          if inputs[i] not in ".*/":
              if i + 5 < len(inputs) and inputs[i+5] != ".":
                  check = 1
                  temp_result = str(int(inputs[i+4]) * 10 + int(inputs[i+5]))
                  inputs[i+4] = temp_result[0]
                  inputs[i+5] = temp_result[1] if len(temp_result) > 1 else ''
              else:
                  check = 0
                  temp_result = inputs[i+4]
    
              if int(inputs[i]) + int(inputs[i+2]) == int(temp_result):
                  if check:
                      inputs[i-1] = inputs[i+6] = '*'
                      inputs[i-8*m:i-8*m+6] = ['*'] * 6
                      inputs[i+8*m:i+8*m+6] = ['*'] * 6
                  else:
                      inputs[i-1] = inputs[i+5] = '*'
                      inputs[i-8*m:i-8*m+5] = ['*'] * 5
                      inputs[i+8*m:i+8*m+5] = ['*'] * 5
              else:
                  inputs[i+1] = inputs[i-8*m+2] = inputs[i+8*m] = '/'
    
              i += 1 
              if check:
                  i += 5
              else:
                  i += 4
    
          i += 1 
    
      for i in range(3*n):
          print(''.join(inputs[8*m*i:8*m*(i+1)]))
    
    

About Sejun Jeong
Sejun Jeong

Seize the day with programming

Email : usopked16496@gmail.com

Website : https://usopked.github.io

About UPKED

2024년
2025년

Star
Categories
Useful Links