LeetCode발행일 2025. 1. 23.원본 https://blog.naver.com/jword_/223736000150 ↗

코테 실수를 줄이는 드로므간의 법칙

코테 실수를 줄이는 드로므간의 법칙 — #개발자의도구들 #드모르간의법칙 #코테 사용된 언어: 코틀린, 혹은 파이썬 순서: 로직, 코드 구현, 코드 ...

#LeetCode#Naver Blog

#개발자의도구들 #드모르간의법칙 #코테

​

​

  • 사용된 언어: 코틀린, 혹은 파이썬
  • 순서: 로직, 코드 구현, 코드 분석

드모르간의 법칙

Programers(PCCE 기출문제 9번 lv1)

LV2 문제 풀다가 잘 안풀려서 머리나 식힐 겸 lv1문제를 풀었다. 문제 난이도는 크게 어렵지 않았지만, 집고 넘어가면 좋을 것 같아서 글로 남기고자 한다.

javascript 코드 예제
                                    👉 드모르간의 법칙

(AB)' = A' + B'
(A + B)' = A'B'

논리구조시간에 그렇게도 풀었던 문제인데 막상 코드에 적용하려고 하니 뭔가 어색했다.

​

문제를 분석해서 정답이 될 수 박에 없는 케이스가 두개인 것을 발견했다.

javascript 코드 예제
                                    wb, ws = wallet의 가로 x 세로
bb, bs = bill의 가로 x 세로

정답 조건
(wb >= bb and ws >= bs) or (wb >= bs and ws >= bb)

문제는 while을 사용하기 위해서는 해당 조건의 역 조건으로 조건식을 작성해야한다.

javascript 코드 예제
                                    while (wb < bb and ws < bs) or (wb < bs and ws < bb)

아무생각 없이 단순히 부등호만 변경하는 오류를 범하였다 ...

​

정환한 식은 아래와 같다.

javascript 코드 예제
                                    (not (wb >= bb and ws >= bs)) and (not (wb >= bs and ws >= bb))
(wb < bb or ws < bs) and (wb < bs or ws < bb)

​

실수를 줄이려면

막상 시험에 가면 저런 사소한 실수 하나 때문에 맨붕이 올 수 있다. 그냥 실수를 줄이기 위해서 따로 식으로 표현하거나 혹은 not을 앞에 붙여 버리자.

javascript 코드 예제
                                    while not ((wb >= bb and ws >= bs) or (wb >= bs and ws >= bb)):

# 혹은
condition = (wb >= bb and ws >= bs) or (wb >= bs and ws >= bb)

while not condition:

​