[SW사관학교 정글/8일차 TIL] 알고리즘 풀 때 오류 줄이는 법

김승덕·2022년 9월 26일
0

SW사관학교 정글 5기

목록 보기
12/150
post-thumbnail

알고리즘 풀 때 오류 줄이는법

같은 팀원이 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이 된다.)

따라서 알고리즘을 풀때 숫자로 풀어야 문제가 덜 발생할 것 같다.

profile
오히려 좋아 😎

0개의 댓글