본문 바로가기
Python/복습

[복습] 파이썬 코드업 9장

by sophia02 2022. 5. 15.

[59]

입력 된 정수를 비트단위로 참/거짓을 바꾼 후 정수로 출력해보자.

예를 들어 1이 입력되었을 때 저장되는
1을 32비트 2진수로 표현하면 00000000 00000000 00000000 00000001 이고,
~1은 11111111 11111111 11111111 11111110 가 되는데 이는 -2를 의미한다.

 

정답

bitNot = ~int(input())
print(bitNot)

 

 

[60]

입력된 정수 두 개를 비트단위로 and 연산한 후 그 결과를 정수로 출력해보자.

예를 들어 3과 5가 입력되었을 때를 살펴보면
3 : 00000000 00000000 00000000 00000011
5 : 00000000 00000000 00000000 00000101
3 & 5 : 00000000 00000000 00000000 00000001
이 된다.

 

정답

a, b = map(int, input().split())
print(a & b)

 

[우리밋이 알려주는 Bonus 문제 (2)]

1개의 정수형 입력이 들어오면 비트 연산을 이용하여 '홀수'와 '짝수'를 판별하여라

 

정답

number = int(input())
print(['짝수', '홀수'][number & 1])  # 다시 풀어볼 것

 

 

[61]

입력된 정수 두 개를 비트단위로 or 연산한 후 그 결과를 정수로 출력해보자.

예를 들어 3과 5가 입력되었을 때를 살펴보면
3 : 00000000 00000000 00000000 00000011
5 : 00000000 00000000 00000000 00000101
3 | 5 : 00000000 00000000 00000000 00000111
이 된다.

 

정답

a, b = map(int, input().split())
print(a | b)

 

 

[62]

입력된 정수 두 개를 비트단위로 xor 연산한 후 그 결과를 정수로 출력해보자.

예를 들어 3과 5가 입력되었을 때를 살펴보면
3 : 00000000 00000000 00000000 00000011
5 : 00000000 00000000 00000000 00000101
3 ^ 5 : 00000000 00000000 00000000 00000110
이 된다.

 

정답

a, b = map(int, input().split())
print(a ^ b)  # xor연산은 ^ 사용함

 

 

[우리밋이 알려주는 Bonus 문제 (2-2]

해당 문제는 '카카오'와 '우아한 테크코스(이하 우테코)'의 실제 코딩 테스트 데모 문제였음을 알려드립니다.
카카오에서는 이 보다 훨씬 어려운 난이도의 코딩 문제들이 출제되며,
우테코에서는 우테코의 최고 난이도를 10으로 봤을 때 4~5 정도(지극히 주관적 평가임을 유의)에 해당합니다.

참고 : 필자는 해당 사에서 출제된 문제들을 풀어봤을 뿐 실제 코딩 시험은 치뤄본 적이 없습니다.

문제 직사각형을 만드는 데 필요한 4개의 점 중 3개의 좌표가 주어질 때, 나머지 한 점의 좌표를 구하려고 합니다. 점 3개의 좌표가 들어있는 배열 v가 매개변수로 주어질 때, 직사각형을 만드는 데 필요한 나머지 한 점의 좌표를 return 하도록 solution 함수를 완성해주세요.

단, 직사각형의 각 변은 x축, y축에 평행하며, 반드시 직사각형을 만들 수 있는 경우만 입력으로 주어집니다.

제한사항

  1. v는 세 점의 좌표가 들어있는 2차원 배열입니다.
  2. v의 각 원소는 점의 좌표를 나타내며, 좌표는 [x축 좌표, y축 좌표] 순으로 주어집니다.
  3. 좌표 값은 1 이상 10억 이하의 자연수입니다.
  4. 직사각형을 만드는 데 필요한 나머지 한 점의 좌표를 [x축 좌표, y축 좌표] 순으로 담아 return 해주세요.

입력(1)

[[1,4], [3,4], [3,10]]

출력(1)

[1,10]

입력(2)

[[1,1], [2,2], [1,2]]

출력(2)

[2,1]

정답

coordinates = [[1, 4], [3, 4], [3, 10]]

result = []
result.append(coordinates[0][0] ^ coordinates[1][0] ^ coordinates[2][0])
result.append(coordinates[0][1] ^ coordinates[1][1] ^ coordinates[2][1])

print(result)
# 어려워서 못풀었음. 다시 풀어볼 것

'Python > 복습' 카테고리의 다른 글

[복습] 파이썬 코드업 11장  (0) 2022.05.15
[복습] 파이썬 코드업 10장  (0) 2022.05.15
[복습] 파이썬 코드업 8장  (0) 2022.05.15
[복습] 파이썬 코드업 7강  (0) 2022.05.15
[복습] 파이썬 코드업 6장  (0) 2022.05.15