반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 프로그래머스 2차원동전뒤집기
- 머신러닝 학습 검증
- 인공지능 경진대회
- 메뉴리뉴얼 파이썬
- 프로그래머스광고삽입
- 모델경량화
- 인공신경망 학습
- k겹 교차검증
- 스타수열 파이썬
- 비트마스킹
- 카카오 코테 메뉴리뉴얼
- 딥러닝 가중치 갱신
- 카카오 메뉴리뉴얼
- MLE
- AI경량화
- 확률과우도
- 프로그래머스 스타수열
- 프로그래머스 2차원동전뒤집기 파이썬
- 과적합방지
- 프로그래머스
- 2차원동전뒤집기
- 자율성장 인공지능
- 데이터축소
- 광고삽입 파이썬
- 딥러닝파라미터
- 스타수열
- 로지스틱 최대우도
- 프로그래머스 누적합
- 딥러닝
- 딥러닝학습
Archives
- Today
- Total
머신러닝 개발자의 러닝머신
[프로그래머스: 테이블 해시 함수] (Python) 본문
반응형
문제
https://school.programmers.co.kr/learn/courses/30/lessons/147354
알아야 하는 것
- XOR 연산 -> '^' 연산자 (XOR 연산자를 몰라서 이진수로 직접 바꾸고 연산을 수행했음)
- 십진수 이진수로 바꾸기
- sort-lambda 함수
문제 풀이
<<XOR 연산자 사용 안하고 구현한 코드>>
def solution(data, col, row_begin, row_end):
answer = 0
n, m = len(data), len(data[0])
s = [0 for _ in range(n)]
bit_s = ["" for _ in range(n)]
#특정 col 원소의 오름차순, 0번째 원소의 내림차순 정렬
data = sorted(data, key = lambda x: (x[col-1], -x[0]))
for i in range(row_begin-1, row_end):
for j in range(m):
s[i] += data[i][j]%(i+1)
#2진수로 변경
while s[i]>0:
bit_s[i] = str(s[i]%2) +bit_s[i]
s[i] //= 2
#bitwise XOR 연산: 같은 자리의 비트가 서로 같으면 0, 다르면 1
prev = bit_s[row_begin-1]
for i in range(row_begin, row_end): #누적 XOR 연산
#자릿수 맞춰주기, 자릿수 적은 수에 앞에 0 채워넣기
cur = bit_s[i]
if len(prev) > len(cur):
cur = "0"*(len(prev)-len(cur)) + cur
elif len(prev) < len(cur):
prev = "0"*(len(cur)-len(prev)) + prev
#bitwise XOR
res = ""
for j in range(len(cur)):
if prev[j] == cur[j]: #같으면 0
res += "0"
else: #다르면 1
res += "1"
prev = res
# 10진수 변환
for i in range(len(prev)-1, -1, -1):
if prev[i] =="1":
answer += 2**(len(prev)-1-i)
return answer
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
✨[2022KAKAO TECH INTERNSHIP: 두 큐 합 같게 만들기](Python) (0) | 2023.04.13 |
---|---|
[프로그래머스-디펜스 게임] (Python) (0) | 2023.04.12 |
[프로그래머스: 문자열 나누기](Python) (0) | 2023.04.12 |
[프로그래머스-가장 가까운 같은 글자] (Python) (0) | 2023.04.12 |
[프로그래머스-마법의 엘리베이터] (Python) (0) | 2023.04.12 |