[Python] 프로그래머스 / 해시 / sort 다중정렬 / 하나의 리스트에서 문자 비교 / 이진수 나타내기
2024. 3. 4. 11:00ㆍCoding Test/Python
def solution(data, col, row_begin, row_end):
answer = []
mod = 0
result = []
data.sort(key = lambda x : (x[col-1], -x[0])) # 정렬
for i in range(row_begin, row_end+1):
for j in data[i-1]:
mod += j%i
answer.append(format(mod, '04b'))
for k, l in zip(answer, answer[1:]):
for a in range(len(k)):
if k[a]==l[a]:
result.append("0")
else:
result.append("1")
return int(''.join(result), 2)
이런식으로 하고 고쳐보다가 답이 안나왔었다... ;0;
def solution(data, col, row_begin, row_end):
answer = 0
data.sort(key = lambda x : (x[col-1], -x[0])) # 정렬
for i in range(row_begin, row_end+1):
result = 0
for j in data[i-1]: # i번째 행
result += j%i
answer = answer ^ result # XOR 연산
return answer
한 행이 끝나면 result를 초기화 해주고
정수들 간의 XOR 연산은 각 비트를 서로 비교하여 같으면 0을, 다르면 1을 반환.
★2가지 조건이 주어졌을때
배열.sort(key=lambda, x:[첫번째 조건, 두번째 조건]
ref :
프로그래머스 - 테이블 해시 함수
완호가 관리하는 어떤 데이터베이스의 한 테이블은 모두 정수 타입인 컬럼들로 이루어져 있습니다. 테이블은 2차원 행렬로 표현할 수 있으며 열은 컬럼을 나타내고, 행은 튜플을 나타냅니다.첫
velog.io
'Coding Test > Python' 카테고리의 다른 글
| [Python] 프로그래머스 / 스택/큐 / 프로세스 / any() (0) | 2024.03.06 |
|---|---|
| [Python] 프로그래머스 / 정렬 / 가장 큰 수 / 숫자형 리스트 단일 값으로 병합 (0) | 2024.03.06 |
| [Python] 프로그래머스 / 스택/큐 / 올바른 괄호 / pop() / stack (0) | 2024.03.05 |
| [Python] 프로그래머스 / 스택/큐 / 기능개발 / 리스트 순서대로 비교 (0) | 2024.03.05 |
| [Python] 프로그래머스 / 해시 / 베스트앨범 / dictionary에서 key에 따른 value 더하기 (0) | 2024.03.04 |