같은 팀원이 2628번: 종이자르기문제를 풀 때 계속 틀렸습니다
라는 문구가 계속 떠서 시간을 많이 썼던 적이 있다.
이유를 결국 같이 알아냈는데 입력받은 것을 문자열로 풀었기 때문이다.
물론 문제마다 다르겠지만 보통의 경우에는 숫자로 푸는게 맞는것같다.
for a in range(2, len(temp)) :
temp_int = list(map(int, temp[a].split()))
if int(temp_int[0]) == 0 :
leng.append(temp_int[1])
else :
wid.append(temp_int[1])
위의 예시에서는 temp_int
안에 숫자로 각 요소를 담아 if
문을 처리하였다.
하지만 이 문제는 문자열이 1 2
이런식으로 들어오기에 문자열을 인덱스로 접근하여 풀어도 괜찮겠다고 생각할 수 있다.
구체적으로는 1 2
이런 문자열이 들어오면 인덱스[0]
과 인덱스[2]
로 접근하면 될것같다.
하지만 1 10
과 같은 반례가 발생한다.(이 반례에서는 0번째 인덱스의 문자는 1
이고 2번째 인덱스의 문자는 10
이 아닌 1
이 된다.)
따라서 알고리즘을 풀때 숫자로 풀어야 문제가 덜 발생할 것 같다.