조건분기문 제거

조건분기문 없는 홀,짝 판별

얼마 전에 친구를 만났는데,
조건분기문을 사용하지 않고 홀,짝을 판별할 수 있냐고 물어봤다.

흥미로웠다. 조건분기 없이 판별을 해야 한다라..
재밌었다.

이리저리 생각해보다가 생각난 방법은
2진수와 딕셔너리를 사용하는 것이다.
홀 아니면 짝. 두 가지 경우밖에 없기 때문에, 2진수로 변환하고
가장 오른쪽 값에 따라 0이면 짝 1이면 홀수이다.

그러니 0과 1일을 키로 가지는 딕셔너리를 만들어서 풀면 조건분기문을 사용하지 않고 홀,짝을 판별할 수 있다.
근데 왠지 모르게 찝찝했다. 모범 답안이 아닌 느낌..?
딕셔너리에서 키에 따라서 다른 값을 불러오는 것도 어떻게 보면 분기?아닌가 싶기도 하고

앞으로 심심할 때 마다 틈틈이 생각해봐야겠다.

def solution(n):
    dic = {0: '짝', 1: '홀'}

    print(dic[int(format(n, 'b')[-1])])


추가적으로 홀, 짝 판별외에 if문을 처음 배울 때 가장 흔히 보는 문제 성적 판별 문제도 조건 분기를 쓰지 않고 풀어봤다.
같은 방법으로 풀 수 있으나 역시나 조금 찝찝했다.

def solution2(n):
    dic = {0: 'F', 1: 'F', 2: 'F', 3: 'F', 4: 'F', 5: 'F', 6: 'D', 7: 'C', 8: 'B', 9: 'A'}

    print(dic[n // 10])
    ```

좋은 웹페이지 즐겨찾기