IF~ ELSE~ / IF~ IF~

나만 몰랐을 수도 있고 단순해서 무시할 수도 있는 부분이지만
if~elif~else~ 구문과 if~if~if~ 구문의 용도와 실행 속도에 대한 이야기이다.
너무나도 당연히 자연스럽게 if~ else~를 사용하고 있지만
짧은 코드, 짧은 실행속도를 고려하면서 든 의문인데
조건문에서 단순히 확인해야 할 조건이 2가지나 3가지라면
if~ elif~ else 보다 if~ if~ if~ 혹은 if~ if~ else~가 빠르고
코드도 더 짧지 않을까 라는 생각이 들었다.
궁금한 건 눈으로 찍어봐야 직성이 풀리기 때문에
간단한 코드로 실행 시간을 비교해 보았다.
테스트


if~ elif~ 구문의 elif에서 조건이 걸리도록 테스트 했을때를 보면
if~ if~를 사용했을때의 시간보다 빠르게 나오기는 하지만
그렇게 큰 시간차이를 보이지는 않는다.
그렇다면 3가지 조건일때 케이스를 한번 보자.



if~ elif~ else~ 가 하나의 루프에서 동작하기 때문인지
if~ if~ if~를 이용하여 개별 비교할 때보다 실행속도가 빠르다.
이전 2개의 조건일때보다 확실히 큰 시간 차이를 보여준다.
if~ if~ if~의 경우 else 구문이 없다보니 한번더 비교를 해야해서
실행시간에서 큰 차이가 발생하는 것이 보인다.
물론 엄청나게 짧은 시간 단위이기 때문에 사람이 체감하진 못하지만
비교해야 할 값이 많아진다면은 엄청난 시간 차이를 발생시킬 수도 있다.
결론
결론은 비교에서 one or nothing인 경우나 묶어서 한번에 처리해야할 경우에
비교할 건수가 많다면 if~ else~ 혹은 if~ elif~ else~가 확실히 유리하다.
단순 비교 건수가 적고 일종의 트리거처럼 특정 조건을 걸고 싶은 경우라면
경우에 따라 if~ if~를 사용하는 것이 필요할 수도 있다.
(이런 경우가 아마 거의 없을것으로 생각되지만)
'CS(컴퓨터 사이언스) > 알고리즘' 카테고리의 다른 글
[코드트리] 고대 문명 유적 탐사 (0) | 2024.06.10 |
---|---|
[코드트리] 격자 숫자 놀이 (0) | 2024.06.09 |
[백준] 10989 - 수 정렬하기 3(python) (0) | 2021.12.02 |
[백준] 2751 - 수 정렬하기 2(python) (1) | 2021.11.30 |
[프로그래머스] 타겟넘버 - BFS로 풀기 (0) | 2021.11.19 |